bpocallaghan / generators
自定义Laravel文件生成器,包括配置和可发布的模板。
Requires
- php: ^8.1
- laravel/framework: ^11.0
- symfony/console: v7.0.4
Requires (Dev)
- orchestra/testbench: ^7.1
- dev-master
- 11.0.0
- 9.0.1
- 9.0.0
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 7.0.2
- 7.0.1
- 7.0.0
- 6.06
- 6.1
- 6.0.5
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.1.9
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.x-dev
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.0.x-dev
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.x-dev
- 2.0.1
- 2.0.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-feature/update-view-name-delimeter
This package is auto-updated.
Last update: 2024-09-15 14:35:35 UTC
README
自定义Laravel文件生成器,带有配置文件和可发布的模板。您可以发布模板。您可以添加自己的模板以生成。
此包正在被用于Admin Starter Project,该项目专注于测试驱动开发,并为您准备好了基础。
Laravel 5.1 : v2.1.3
Laravel 5.2 - 5.3 : v3.0.3
Laravel 5.4 : v4.1.9
Laravel 5.5 - 5.8 : v5.0.0+
Laravel 6.0 : v5.1.0+
Laravel 7.0 : v6.x
Laravel 8.0 : v7.x
Laravel 9.0 : v8.x
Laravel 10.0 : v9.x
命令
php artisan generate:publish-stubs php artisan generate:model php artisan generate:view php artisan generate:controller php artisan generate:migration php artisan generate:migration:pivot php artisan generate:seed php artisan generate:resource php artisan generate:repository php artisan generate:contract php artisan generate:notification php artisan generate:event php artisan generate:listener php artisan generate:event-listener php artisan generate:trait php artisan generate:job php artisan generate:console php artisan generate:middleware php artisan generate:factory php artisan generate:test php artisan generate:file php artisan generate:exception php artisan generate:component php artisan generate:livewire
所有命令的选项
--force
如果存在,将覆盖现有文件。--test
这还将生成一个测试文件。
除了 views
和 migration:pivot
的所有命令选项
--plain
这将使用命令的 .plain 模板(生成一个空的控制器)
自定义
这是除了 migration
和 migration:pivot
命令之外的所有内容
php artisan generate:file foo.bar --type=controller
php artisan generate:view foo.bar --stub=view_show --name=baz_show
php artisan generate:file foo.bar --type=controller --stub=controller_custom --name=BazzzController --plain --force
您可以指定要生成的文件的名称。您可以添加 --plain 或 --force 选项。您可以覆盖默认的模板。您可以使用可用的占位符创建自己的模板。您可以创建新的设置类型,例如
- 'exception' => ['namespace' => '\Exceptions', 'path' => './app/Exceptions/', 'postfix' => 'Exception'],
视图自定义模板
php artisan generate:view posts
php artisan generate:view admin.posts --stub=custom
php artisan generate:view admin.posts --stub=another_file
安装
更新项目的 composer.json
文件。
composer require bpocallaghan/generators --dev
添加服务提供者(Laravel 5.5+ 有自动发现包的功能)您只想将这些生成器用于本地开发,请在 app/Providers/AppServiceProvider.php
中添加提供者
public function register() { if ($this->app->environment() == 'local') { $this->app->register(\Bpocallaghan\Generators\GeneratorsServiceProvider::class); } }
运行 php artisan
命令以在 generate:*
部分查看新命令
使用
模型
php artisan generate:model bar
php artisan generate:model foo.bar --plain
php artisan generate:model bar --force
php artisan generate:model bar --factory
php artisan generate:model bar --migration
php artisan generate:model bar --migration --schema="title:string, body:text"
视图
php artisan generate:view foo
php artisan generate:view foo.bar
php artisan generate:view foo.bar --stub=view_show
php artisan generate:view foo.bar --name=foo_bar
控制器
php artisan generate:controller foo
php artisan generate:controller foo.bar
php artisan generate:controller fooBar
php artisan generate:controller bar --plain
php artisan generate:controller BarController --plain
- 如果需要,将添加
Controller
后缀。
迁移
这非常类似于Jeffrey Way的
php artisan generate:migration create_users_table
php artisan generate:migration create_users_table --plain
php artisan generate:migration create_users_table --force
php artisan generate:migration create_posts_table --schema="title:string, body:text, slug:string:unique, published_at:date"
交叉表
这非常类似于Jeffrey Way的
php artisan generate:migration:pivot tags posts
数据库播种器
php artisan generate:seed bar
php artisan generate:seed BarTableSeeder
- 如果需要,将添加
TableSeeder
后缀。
资源
php artisan generate:resource bar
php artisan generate:resource foo.bar
php artisan generate:resource foo.bar_baz
php artisan generate:resource bar --schema="title:string, body:text, slug:string:unique, published_at:date"
php artisan generate:resource articles --controller=admin
- 这将生成一个 Bar 模型,BarsController,资源视图(在配置中),create_bars_table 迁移,BarTableSeeder
- 在配置中有一个
resource_views
数组,您可以在其中指定要生成的视图,只需确保模板存在即可。 - 这还将要求您生成“存储库 - 合同模式”文件。
--controller=admin
允许您在生成控制器时使用 controller_admin 模板。
存储库
php artisan generate:repository Posts
这将生成一个用于您控制器的 Posts 存储库文件。
合同
php artisan generate:contract Cache
这将生成一个用于您的存储库的 Cache 合同文件。
通知
php artisan generate:notification UserRegistered
这将生成一个 UserRegistered 通知。Laravel 提供了支持通过各种传递通道发送通知,包括邮件、SMS(通过 Nexmo)和 Slack。通知还可以存储在数据库中,以便在您的 Web 界面中显示。
事件和监听器
php artisan generate:event InvoiceWasPaid
php artisan generate:listener NotifyUserAboutPayment --event=InvoiceWasPaid
php artisan generate:event-listener
这将生成事件和监听器。Laravel 的事件提供了一个简单的观察器实现,允许您订阅和监听在您的应用程序中发生的事件。
php artisan generate:event-listener
将生成在您的 EventServiceProvider 中定义的所有缺失的事件和监听器。
特质
php artisan generate:trait Http\Controllers\Traits\Bar
这将生成一个FooBar特性文件。命令将使用该名称作为命名空间。generate:trait Foo
将在app/Foo.php
中创建一个文件,generate:trait Foo\Bar
将在app/Foo/Bar.php
中创建一个文件。
作业
php artisan generate:job SendReminderEmail
这将生成一个发送提醒邮件作业文件。
控制台(Artisan命令)
php artisan generate:console SendEmails
php artisan generate:console SendEmails --command=send:emails
这将生成一个SendEmails Artisan命令文件。--command选项是可选的。
中间件
php artisan generate:middleware AuthenticateAdmin
这将生成一个AuthenticateAdmin中间件文件。
工厂
php artisan generate:factory Post
php artisan generate:factory PostFactory
这将生成一个PostFactory模型文件。
测试
php artisan generate:test UserCanLogin
php artisan generate:test Post --unit
php artisan generate:test Auth\LoginTest
这将生成Feature\UserCanLogin、Unit\PostTest和Unit\Auth\LoginTest文件。
组件
php artisan generate:component Foo
php artisan generate:component Foo/Bar
php artisan generate:component Baz --test
这将生成一个Laravel组件。将生成php和blade文件。您还可以指定生成单元测试。
Livewire
php artisan generate:livewire Foo
php artisan generate:livewire Foo/Bar
php artisan generate:livewire Baz --test
php artisan generate:livewire foo-bar --request
这将生成一个Livewire组件。将生成php和blade文件。您还可以指定生成测试或表单请求。
配置
php artisan generate:publish-stubs
这会将配置文件复制到/config/generators.php
。在这里,您可以更改每个type
(如模型、视图、控制器、种子)的设置默认值。您还可以更改命名空间、创建文件的路径、前缀/后缀等。您还可以添加新的模板。
这还会将所有模板复制到/resources/stubs/
。在这里,您可以更改当前的模板,为文件添加自己的样板/注释。您还可以在这里添加自己的模板,并在配置中指定以供使用。迁移模板注意:`migration.stub`仅是外层部分,而`schema_create.stub或schema_change.stub`是您修改表结构的部分。《schema_create.stub》已添加了样板。
文件
这是视图、模型、控制器、种子命令的基本命令。迁移和迁移:迁移使用Jeffrey的类。在配置中有一个`settings`数组,这是`types`及其设置。您可以添加更多,例如,如果您使用存储库,您可以在这里添加。
php artisan generate:file foo.bar --type=view
php artisan generate:file foo.bar --type=controller
php artisan generate:file foo.bar --type=model
php artisan generate:file foo.bar --type=model --stub=model_custom
自定义文件创建消息以添加对ide打开文件的支持
为打开输出创建链接。将output_path_handler作为函数添加到您的config/generators.php。示例
'output_path_handler' => static function($path){
return 'file:///' . base_path() . $path;
},
这将输出一个文件schema URI,JetBrain产品(Intellij、Php Storm、Web Storm等)然后可以直接从您的终端打开。
谢谢
我的其他包
- Alert一个辅助包,通过外观或辅助函数将bootstrap警报闪现到浏览器。
- Notify具有图标、动画和超时功能的Laravel Flash通知。
- Impersonate User允许您认证为您的任何客户。
- Sluggable提供了一个HasSlug trait,在保存您的Laravel Eloquent模型时将生成一个唯一的slug。