ekhaled / f3-cortex-model-generator
通过逆向工程现有数据库模式生成 F3 Cortex 模型
1.8
2022-03-09 15:40 UTC
Requires
- php: >=5.3.6
- ext-pdo: *
- ekhaled/schema-parser-mysql: >=1.3
README
通过逆向工程现有数据库模式生成 F3 Cortex 模型。
目前仅支持 MySQL。
安装
请在您的 composer 文件中添加
"ekhaled/f3-cortex-model-generator": "1.0"
。
用法
创建一个包含以下内容的可执行 PHP 文件
#!/usr/bin/env php <?php require_once(__DIR__ . '/../src/vendor/autoload.php'); $config = [ 'output' => 'path/to/output/folder/', 'DB' => array(), //DB connection params 'namespace' => 'Models\\Base', 'extends' => '\\Models\\Base', 'relationNamespace' => '\\Models\Base\\', 'template' => 'path/to/template/file', 'indentation' => array(), 'exclude' => array() ]; $generator = new \Ekhaled\Generators\MySQL\Model($config); $generator->generate();
然后,只需从命令行运行该文件即可。
选项
output
- 指定模型输出到的文件夹。DB
- 以以下格式的数组:['host' => 'host.com', 'username' => '', 'password' => '', 'dbname' => 'name_of_database',]namespace
- 生成的模型的命名空间extends
- 如果您有一个基础模型,可以通过在此处指定它来让生成的模型扩展该模型。relationNamespace
- 构成与给定模型关系的连接类的命名空间,通常与namespace
相同template
- 包含自定义模板的文件路径,如果未指定,则使用内置模板。indentation
- 一个数组,指示在模板生成时要使用的缩进类型单位以及起始级别。
例如:['unit' => ' ', 'start_level' => 3]
。这将在 6 个空格处使用 2 个空格作为缩进。
这适用于由 {{FIELDCONF}} 模板定义的数组exclude_views
- 是否生成视图的模型,默认为 false。exclude_connectors
- 是否为多对多连接表生成存根模型,默认为 false。有时您可能需要这些模型来创建数据库表,例如在测试数据库中的自动测试。exclude
- 包含您希望在生成模型时排除的所有表的数组。例如:array('migrations')
。
自定义模板
一个典型的自定义模板看起来像这样
<?php {{NAMESPACE}} class {{CLASSNAME}} {{EXTENDS}} { protected $fieldConf = [ {{FIELDCONF}} ], $table = '{{TABLENAME}}'; }
只需确保占位符到位,它们将在模型生成过程中被替换。
支持的占位符包括
{{NAMESPACE}}
{{CLASSNAME}}
{{EXTENDS}}
{{FIELDCONF}}
{{TABLENAME}}