jahudka/nittro-project


README

这是一个使用 Gulp 和 Nittro、通过 Kdyby 的 Doctrine 以及基于 Bootstrap v4 的基本管理模板的 Nette 项目的简单骨架。需要 PHP 7.1。

安装

composer create-project jahudka/nittro-project myproject
cd myproject
.ci/build
cp etc/config.local.dist etc/config.local.neon
$EDITOR etc/config.local.neon
bin/console orm:schema-tool:create

应用布局

  • 配置存储在 ./etc 中。
  • 可执行的控制台工具位于 ./bin/console
  • 所有应用程序源代码位于 ./src,它是 App 命名空间的一个 PSR-4 命名空间根;该命名空间中的自动加载由 Composer 提供。
  • 所有缓存和日志,以及会话,都位于 ./var 下。

Doctrine

  • 实体位于 ./src/Entity
  • 存在一个默认的用户身份实体,用户可以使用控制台工具的 user:* 命令系列来管理用户。

组件

  • 存在一个抽象基类 App\UI\BaseControl,它添加了 setView(string $view)getView()render() 方法;扩展此类的组件将使用位于 <component directory>/templates/<view>.latte 的 latte 模板进行渲染。
  • 为了方便,所有在公共的 ./src/Components 或每个模块的 Components 目录中定义的单个名为 create 的接口都自动注册到 DI 容器中(除非已存在实现该接口的服务)。

资产

  • 所有资产都使用 Gulp 进行管理和编译。
  • 按照惯例,每个模块特定的资产位于模块的 assets 子目录中,而(可能)公共资产位于 ./src/assets 目录中。
  • 有多个可用的 Gulp 任务用于构建所有单个资产,还有一些方便的开发时的监视任务。它们的命名遵循以下惯例
    task := [ watch ] [:] [ public|admin ] [:] [ js|css|fonts ]
    
    您可以将任务名称视为由冒号分隔的标签列表。watch 标签不与 fonts 标签一起使用,但其他所有组合都是允许的。省略除 watch 标签之外的所有标签等同于指定该标签的所有排列,例如,watch:jswatch:public:js watch:admin:js 相同,而 publicpublic:js public:css public:fonts 相同。
  • 默认任务构建一切。
  • Nittro 组件在 gulpfile 的开始处通过构建实例的配置标志启用;还可以在那里指定其他供应商的库以及您的自定义代码。阅读 gulpfile 的源代码应该会使一切变得清晰。
  • 所有非最小化 JavaScript 都会被压缩,所有 LESS 样式都会被编译,所有非最小化样式都会被压缩。
  • Bootstrap for Nittro 会自动生成。

控制台

  • kdyby/doctrine 包定义了一些有用的 Doctrine 相关命令 - 这些命令按常规使用。
  • 还有前面提到的用户管理的一些命令。
  • 为了方便,所有在公共的 ./src/Commands 或每个模块的 Commands 目录中扩展了 Symfony 的 Command 类的类都自动注册到 DI 容器中,并标记为 kdyby.console.command(除非已存在相同类型的服务)。