lancers / cakephp-generation-gap-pattern-model-baker
CakePHP4的GenerationGapModelBaker插件
1.0.4
2021-12-10 00:42 UTC
Requires
- php: >=7.2
- cakephp/cakephp: ^4.0
Requires (Dev)
- phpunit/phpunit: ~8.5.0 || ^9.3
README
这是一个使用生成代沟模式实现可烘焙模型操作的插件。
自动生成工具仅创建超类。人类不会修改它。人类创建该类的子类。自动生成器不会操作这些子类。
生成代沟模式参考(日文)
http://www.hyuki.com/dp/dpinfo.html#GenerationGap
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require --dev lancers/cakephp-generation-gap-pattern-model-baker
使用 composer.json
安装,添加以下内容
"require-dev": { "lancers/cakephp-generation-gap-pattern-model-baker": "1.*", }
用法
1. 添加到 bootstrap_cli.php
添加配置以加载自定义模板。
Configure::write('Bake.theme', 'GenerationGapModelBaker');
2. 添加到 Application.php
在运行时环境中这不必要,因此请在调试时添加Plugin。
if (Configure::read('debug')) { $this->addPlugin('GenerationGapModelBaker'); // add line $this->addPlugin('DebugKit'); }
3. 运行 bake 命令创建模型
bin/cake bake extended_model table_name
在示例表中,将创建如下所示的模型文件。
$ bin/cake bake extended_model examples
One moment while associations are detected.
Baking table class for Examples...
Creating file /var/www/lancers_admin/src/Model/Baked/Table/ExamplesTable.php
Wrote `/var/www/lancers_admin/src/Model/Baked/Table/ExamplesTable.php`
Baking entity class for Example...
Creating file /var/www/lancers_admin/src/Model/Baked/Entity/Example.php
Wrote `/var/www/lancers_admin/src/Model/Baked/Entity/Example.php`
Baking entended table class for Examples...
Creating file /var/www/lancers_admin/src/Model/Table/ExamplesTable.php
Wrote `/var/www/lancers_admin/src/Model/Table/ExamplesTable.php`
Baking entended entity class for Example...
Creating file /var/www/lancers_admin/src/Model/Entity/Example.php
Wrote `/var/www/lancers_admin/src/Model/Entity/Example.php`
Baking test fixture for Examples...
Creating file /var/www/lancers_admin/tests/Fixture/ExamplesFixture.php
Wrote `/var/www/lancers_admin/tests/Fixture/ExamplesFixture.php`
Bake is detecting possible fixtures...
Baking test case for App\Model\Table\ExamplesTable ...
Creating file /var/www/lancers_admin/tests/TestCase/Model/Table/ExamplesTableTest.php
Wrote `/var/www/lancers_admin/tests/TestCase/Model/Table/ExamplesTableTest.php`
Done