eab-dsvenss / php-laravel-model-generator
用于从数据库生成模型的Laravel模型生成器包装器
Requires
- php: >=5.6.0
- eab-dsvenss/php-classtailor: dev-master
- eab-dsvenss/php-laravel-util: dev-master
- krlove/eloquent-model-generator: ^1.2
- laravel/framework: >=5.3
- reliese/laravel: ^0.0.13
Requires (Dev)
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 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
中的文件
额外文件格式与任何其他模型配置文件相同。
库
通过指定lib
为krlove
或reliese
,可以选择用于生成模型的库。
如果选择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
中指定。