eab-dsvenss/php-laravel-model-generator

该包最新版本(dev-master)没有可用的许可信息。

用于从数据库生成模型的Laravel模型生成器包装器

dev-master 2018-10-11 15:15 UTC

This package is not auto-updated.

Last update: 2024-09-26 16:54:31 UTC


README

使用krlove/eloquent-model-generator从数据库生成Laravel模型的包装器包

安装

获取包

composer require eab-dsvenss/php-laravel-model-generator --dev

config/app.php中注册提供者

'providers' => [
    // ...
    se\eab\php\laravel\modelgenerator\provider\ModelGeneratorServiceProvider::class
];
php artisan eab-modelgenerator:install

用法

app/config/eab-modelgeneratorconfig.php中指定要生成的模型

app/config/eab-modelgenerator/.php中指定每个模型的详细信息

调用php artisan eab-modelgenerator:generate以生成配置文件中指定的模型

配置

eab-modelgeneratorconfig.php

return [
    "outputpath" => "model",
    "namespace" => "custom\\namespace"
    "library" => "krlove/reliese/pepij",
    "models" => [
        ["name" => "Dummy", <"table" => "DummyTable">, <"extras" => ["crud", "translatable"]>]
    ]
];

每个模型都可以使用额外的装饰。它们在extras-数组中指定,并指向app/config/eab-modelgenerator/extras/<extrasname>.php中的文件

额外文件格式与任何其他模型配置文件相同。

通过指定libkrlovereliese,可以选择用于生成模型的库。

如果选择krlove,则需要在该依赖项的相应配置文件中设置进一步配置。选项和详细信息在此处指定,https://github.com/krlove/eloquent-model-generator

如果选择reliese,则需要在此处指定应设置的配置,https://github.com/reliese/laravel

Relise

这会自动更新模型,以模型生成时的日期。如果不希望这样,则需要修改以下文件 vendor/reliese/laravel/src/Coders/Model/Templates/model,通过删除文件头部的动态日期行。

模型配置

return [

    "dependencies" => ["dep1","dep2"],
    "replaceables" => [
        ["pattern" => "regex", "replacement" => "replacement"]
    ],
    "removablefns" => [
        ["access" => "public", "name" => "dummyname", "content" => "dummycontent"]
    ],
    "functions" => [
<<<EOT
public function test() {
    \$test;
}
EOT
    ],
    "variables" => [
        ["access" => "public", "name" => "varname", <"value" => "some value">]
    ],
    "traits" => [
        ["name" => "traitname", "dependency" => "traitname"
    ]
];

发生的替换使用preg_replace,这意味着正则表达式和替换应该按照该方法的要求格式化。

常用类属性

如果有属性应在所有类中存在,请在app/config/eab-modelgenerator/EABCommon.php中指定。