pwweb / artomator
PWWEB Artomator
Requires
- php: >=7.4 || ~8.0
- doctrine/dbal: ~2.3
- infyomlabs/laravel-generator: ~3.0 || ~4.0
- laracasts/flash: ^3.2.1
- laravel/framework: ^8.0 || ^9.0
- laravelcollective/html: ^6.3
- mll-lab/laravel-graphql-playground: ^2.0
- nuwave/lighthouse: ^4.0 || ^5.0
Requires (Dev)
- orchestra/testbench: ^6.0 || ^7.0
- phpunit/phpunit: ^8.5 || ^9.3
- dev-master
- v1.1.0
- v1.0.4
- 1.0.2
- v1.0.1
- v1.0.0
- v0.5.7-beta
- v0.5.6-beta
- v0.5.5-beta
- v0.5.4-beta
- v0.5.3-beta
- v0.5.2-beta
- v0.5.1-beta
- v0.5.0-beta
- v0.4.3-beta
- v0.4.2-beta
- v0.4.1-beta
- v0.4.0-beta
- v0.3.5-beta
- v0.3.4-beta
- v0.3.3-beta
- v0.3.2-beta
- v0.3.1-beta
- v0.3.0-beta
- v0.2.3-beta
- v0.2.2-beta
- v0.2.1-beta
- v0.2.0-beta
- v0.1.5-beta
- v0.1.4-beta
- v0.1.3-beta
- v0.1.2-beta
- v0.1.1-beta
- v0.1.0-beta
- dev-develop
This package is auto-updated.
Last update: 2024-09-10 18:54:15 UTC
README
Artomator:简化生活的自定义命令。扩展 InfyOmLabs/laravel-generator
包以包括 GraphQL 并扩展文档块。
安装
通过 Composer 运行以下命令
$ composer require pwweb/artomator --dev
为了简化安装,可以运行以下命令
$ php artisan artomator:install
这将引导您完成设置的各种步骤。您将被问到的问题
1. 选择您的模板包:[CoreUI / AdminLTE]?这将根据您的选择安装基于模板的 laravel-generator 包。请参阅AdminLTE 或 CoreUI
2. 您想安装 Laravel Jetstea (Inertia & Vue) 吗?如果您选择是,这将安装 Laravel Jetstream。它将使用 Inertia 栈。
2a. 您想支持 Laravel Jetstream Teams 吗?如果您想支持 Teams 功能,请回答 YES
,安装将包括支持。否则,将不会安装 Teams 功能。
3. 您想发布存根文件吗?如果您想能够覆盖模板文件以满足您的需求,则回答 YES
,这些文件将发布到资源文件夹。如果您想在安装后执行此操作,可以始终运行 php artisan artomator.publish:templates
。
备用安装(手动)
或者,您可以执行以下操作,这是 install
命令所做的操作
$ php artisan vendor:publish --tag=artomator
$ php artisan vendor:publish --provider="InfyOm\Generator\InfyOmGeneratorServiceProvider"
$ php artisan vendor:publish --tag=lighthouse-schema
$ php artisan vendor:publish --tag=lighthouse-config
$ php artisan artomator:publish
这将发布必要包的配置文件以及运行 GraphQL 服务器所需的 graphql.schema
文件以及以下文件
├── app │ ├── Http │ | └── Controllers │ │ └── AppBaseController.php │ └── Repositories | └── BaseRepository.php └── Tests ├── ApiTestTrait.php ├── Traits ├── APIs └── Repositories
将以下别名添加到 config/app.php
中的别名数组中
'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, 'Flash' => Laracasts\Flash\Flash::class,
推荐:如果您有一个全新的 Laravel 应用程序并且想要一个基本的仪表盘布局,那么您应该考虑设置 Laravel Jetstream。您可以在这里找到安装说明。
默认情况下,infyomlabs\laravel-generator
使用 infyomlabs\adminlte-templates
模板。如果您想使用 coreui
模板,则更新配置文件 config/inyom/laravel-generator.php
中的 Templates
部分,如下所示
<?php return [ ... /* |-------------------------------------------------------------------------- | Templates |-------------------------------------------------------------------------- | */ 'templates' => 'coreui-templates', ... ];
您需要将适当的包添加到您的 composer 中
$ composer require infyomlabs/coreui-templates
或
$ composer require infyomlabs/adminlte-templates
建议您在继续之前现在就更改此配置设置,因为接下来的命令将使用生成视图文件时定义的任何模板。
最后,您应该运行以下命令以发布 Artomator 所使用的存根文件,这样您就可以根据您的设置进行配置
$ php artisan artomator.publish:templates
InfyoLabs 文档
由于这是一个对 InfyOmLabs/laravel-generator
包的扩展,强烈建议您熟悉他们的 文档。在审查这些时,请记住,所有以 $ php artisan infyom
开头的命令都应该替换为 $php artisan artomator
,如果您想利用此包的附加功能。
用法
VueJS 支持
运行基于 *scaffold
的命令(见命令),你可以使用以下附加标志来使用VueJS模板生成视图。
$php artisan artomator.scaffold [...] --vue
这将遵循与 viewsGenerator
相同的附加开关,即 --skip=views
将跳过VueJS视图的生成。
命令
由于这是 InfyOmLabs/laravel-generator
包的扩展,基本包的文档可以在此处找到。
基本包中的所有命令都已“扩展”,因此每个都有一个 artomator
版本。请参考原始文档了解如何使用这些命令。
$ php artisan artomator:publish $ php artisan artomator:api <MODEL_NAME> $ php artisan artomator:scaffold <MODEL_NAME> $ php artisan artomator:api_scaffold <MODEL_NAME> $ php artisan artomator.publish:layout $ php artisan artomator.publish:templates $ php artisan artomator:migration <MODEL_NAME> $ php artisan artomator:model <MODEL_NAME> $ php artisan artomator:repository <MODEL_NAME> $ php artisan artomator.api:controller <MODEL_NAME> $ php artisan artomator.api:requests <MODEL_NAME> $ php artisan artomator.api:tests <MODEL_NAME> $ php artisan artomator.scaffold:controller <MODEL_NAME> $ php artisan artomator.scaffold:requests <MODEL_NAME> $ php artisan artomator.scaffold:views <MODEL_NAME> $ php artisan artomator:rollback <MODEL_NAME> $ php artisan artomator.publish:user
除了基本包的命令外,还有以下命令
$ php artisan artomator:graphql_scaffold <MODEL_NAME> $ php artisan artomator:graphql <MODEL_NAME> $ php artisan artomator.graphql:mutations <MODEL_NAME> $ php artisan artomator.graphql.query <MODEL_NAME> $ php artisan artomator.graphql:type <MODEL_NAME>
对于GraphQL命令,你还可以提供一个附加开关 --gqlName=AlternativeGraphqlName
,这将允许你自定义GraphQL引擎使用的名称。如果省略此选项,则使用模型名称。
artomator.publish:templates
要修改包提供的占位符文件,你可以从命令行发布它们
$ php artisan artomator.publish:templates
此命令将运行InfyOmLabs等效的发布命令,然后使用Artomator包中的那些文件覆盖。因此,您将需要确认文件覆盖,键入yes
以确认。
这将把占位符文件放入 .\resources\infyom\infyom-generator-templates
文件夹。这些可以编辑,当运行命令时,将使用这些模板。
artomator.graphql_scaffold <模型名称>
此功能遵循与 php artisan infyom:api_scaffold <模型名称>
功能相同的原理,但生成GraphQL文件而不是API文件,以及laravel scaffold文件。
artomator:graphql <模型名称>
此功能遵循与 php artisan infyom:api <模型名称>
功能相同的原理,但生成GraphQL文件而不是API文件。
artomator.graphql:mutations <模型名称>
此功能仅生成GraphQL Mutations文件。
artomator.graphql:query <模型名称>
此功能仅生成GraphQL Query文件。
artomator.graphql:type <模型名称>
此功能仅生成GraphQL Type文件。
自定义路由
如果您想定义自定义路由,这些路由在添加新模型时将持久化并重新生成,现在可以在json文件 web.json
中添加一个 custom
属性。
"custom": [ { "method": "post", "endpoint": "/print/{id}", "controller": "App\\Http\\Controllers\\Gran\\Parent\\PrintingController", "as": "PrintingController", "function": "printer", "name": "customprint" } ], "group": {...}
确保这与 group
属性保持一致。
上述操作将添加以下路由
<?php Route::post( '/print/{id}', [PrintingController::class, 'printer'] )->name('customprint');
如果您留空该函数,它将删除回调中的 @printer
部分。
路由通用
以下是对 web.json
文件的示例输出。您可以自由添加 "fallback"
选项,并更改资源控制器的 "only"
"controller"
和 "as"
选项。
{ "Gran": { "prefix": "gran", "name": "gran", "fallback": "gran.parent.somethings.index", "group": { "Parent": { "prefix": "parent", "name": "parent", "resources": { "Something": { "only": "index,create,store", "controller": "App\\Http\\Controllers\\Gran\\Parent\\SomethingController", "as": "WeirdnameController" } } } } } }
"fallback"
- 这是您想要用作组级别回退的路由名称。这将附加到组的末尾,在其他所有资源和组生成之后。"only"
- 您想要限制的路线的逗号分隔列表。"controller"
- 这是路由的控制器完整命名空间路径。如果您更新此路径,它将在web.php
文件的use
调用中设置在顶部。"as"
- 这允许您覆盖控制器使用的名称。默认为控制器名称,但如果发生冲突,则允许您覆盖它。
!! 警告 !! 这些附加字段与先前版本不兼容。请手动更新JSON文件以包含缺失的字段。
安全
如果您发现任何安全相关的问题,请通过电子邮件发送到 security@pw-websolutions.com,而不是使用问题跟踪器。
致谢
许可证
版权所有 © pw-websolutions.com。有关更多信息,请参阅许可证文件。