crisu83 / yii-caviar
为Yii的下一代代码生成。
0.15.0
2014-05-22 10:23 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- codeception/codeception: ~1.8.5
- yiisoft/yii: >=1.1.14
README
为Yii提供无逻辑模板的代码生成。
与Gii相比
你可能想知道为什么你应该使用Caviar而不是Gii,让我们看看它们之间的区别。
使用Gii的主要缺点是编写模板很麻烦。你有没有看过它的一个模板?如果你看过,你会知道它们很难读懂。比较以下Gii中的模板和Caviar中的相应模板。
Caviar使用纯文本(.txt文件)模板,这些模板被编译成PHP文件以实现关注点分离。这意味着所有逻辑都必须包含在生成器中,并且只能将字符串传递给模板。我们不在模板内进行逻辑操作,而是在创建模板数据时在生成器中进行。你可以查看模型生成器示例。
信服了?按照以下说明安装Caviar。
安装
安装此扩展的首选方式是通过composer。
运行
php composer.phar require --prefer-dist crisu83/yii-caviar "*"
或添加
"crisu83/yii-caviar": "*"
到你的composer.json
文件的require部分。
使用
将命令添加到你的控制台应用程序配置中
return array( ... 'commandMap' => array( 'generate' => array( 'class' => '\crisu83\yii_caviar\Command', 'basePath' => '<path-to-project-root>', ), ... ), );
完成后,你可以用它来生成代码
yiic generate generator [context:]subject [options]
其中 generator 是生成器的名称,context 是你的应用程序名称(例如app),subject 是要生成的项目的名称。
你可以通过运行以下命令查看命令帮助
yiic generate help
或者通过将-t
(或--help
)追加到你的命令来查看特定生成器的帮助
yiic generate component --help
禁用命名空间
Caviar默认使用命名空间,主要是因为在大规模应用程序中这已被证明是一种良好的实践,但它也允许你轻松地为所有生成器禁用命名空间。
要为所有生成器禁用命名空间,只需将以下内容添加到你的配置中
'generate' => array( ... 'defaultTemplate' => 'noNamespaces', 'enableNamespaces' => false, 'templates' => array( 'noNamespaces' => '<path-to-caviar>/templates/no-namespaces', ), )
花哨的UI
Caviar有一个花哨的UI,以下是几个UI截图。
- https://www.dropbox.com/s/x29drr6ldkku7ft/Screenshot%202014-03-20%2017.32.20.png
- https://www.dropbox.com/s/vrr0vj709xtxba4/Screenshot%202014-03-20%2017.36.31.png
- https://www.dropbox.com/s/0mm2x6g1ad7d5fz/Screenshot%202014-03-20%2017.39.26.png
生成器
以下生成器已经得到支持
- 组件
- 配置
- 控制器
- 布局
- 模型
- 视图
- Web应用
以下生成器计划包含在第一个版本中
- 行为
- CRUD
- 小部件