on3n3o/generators

带有配置和可发布占位符的自定义Laravel文件生成器。

维护者

详细信息

github.com/on3n3o/generators

源代码

资助包维护!
Patreon

6.06 2020-08-16 18:22 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.0
Laravel 8.0 : v7.0+

命令

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

所有命令的选项

--force 如果存在,将覆盖现有文件。

除了 viewsmigration:pivot 之外的所有命令的选项

--plain 将使用命令的 .plain 占位符(生成空控制器)

自定义

这是针对所有除 migrationmigration: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 --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 数组,您可以在其中指定要生成的视图,只需确保占位符存在即可。
  • 这将还会询问您生成 'repository - contract pattern' 文件。
  • --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:publish-stubs

这将把配置文件复制到《/config/generators.php》。在这里,您可以更改每个《type》的默认设置,如模型、视图、控制器、种子。您还可以更改命名空间、创建文件的路径、前缀/后缀等。您还可以添加新的模板。

这还会把所有模板复制到《/resources/stubs/》。在这里,您可以更改当前的模板,添加自己的样板/注释到文件中。您还可以在这里添加自己的模板,并在配置中指定以供使用。《迁移模板注意》:《migration.stub》仅是外部部分,《schema_create.stub或schema_change.stub》是您修改架构本身的地方。《schema_create.stub》已添加样板。

文件

这是视图、模型、控制器、种子命令的基础命令。迁移和迁移:pivot使用Jeffrey的类。在配置中有一个《settings》数组,这是“类型”及其设置。您可以添加更多,例如,如果您使用存储库,您可以将其添加到这里。

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

快捷方式

art=php artisan
model=php artisan generate:model
view=php artisan generate:view
view:index=php artisan generate:view:index
view:create_edit=php artisan generate:view:create_edit
view:show=php artisan generate:view:show
controller=php artisan generate:controller
migration=php artisan generate:migration
migration:pivot=php artisan generate:migration:pivot
seed=php artisan generate:seed
resource=php artisan generate:resource

自定义文件创建消息以支持IDE打开文件

为打开输出创建链接。将output_path_handler作为函数添加到您的config/generators.php中。示例

'output_path_handler' => static function($path){
    return 'file:///' . base_path() . $path;
},

这将输出一个文件架构URI,JetBrain产品(IntelliJ、Php Storm、Web Storm等)然后可以直接从您的终端打开。

谢谢

我的其他包

  • Notify 带图标和动画的Laravel闪存通知,带超时
  • Alert 一个辅助包,通过外观或辅助函数将bootstrap警报闪存到浏览器。
  • Impersonate User 这允许您以任何客户身份进行身份验证。
  • Sluggable 提供一个HasSlug特性,在保存您的Laravel Eloquent模型时生成一个唯一的slug。