ekhaled/f3-cortex-model-generator

通过逆向工程现有数据库模式生成 F3 Cortex 模型

1.8 2022-03-09 15:40 UTC

This package is auto-updated.

Last update: 2024-09-09 20:39:55 UTC


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}}