bakgul/laravel-file-creator

此包旨在创建应用、数据库和测试文件。它可以替代 Laravel 的文件生成器,因为此包提供了一些相当不错的功能。它提供了额外的文件类型,如接口、特质、服务等。根据设置,它可以创建数十个文件,并通过单个命令将它们适当地连接起来。

v4.0.4 2023-02-22 19:43 UTC

README

此包旨在创建应用、数据库和测试文件。它可以替代 Laravel 的文件生成器,因为此包提供了一些相当不错的功能。它提供了额外的文件类型,如接口、特质、服务等。根据设置,它可以创建数十个文件,并通过单个命令将它们适当地连接起来。

更新到 v4

配置

如果您没有修改 config/packagify.php,只需将其删除并重新发布设置。否则,请转到 vendor/bakgul/laravel-file-creator/config/methods.php,获取数组并将其插入到与键 methods 相关的 packagify.php 中。

占位符

控制器使用单个占位符文件,并在运行时生成所有内容。如果您为不同的变体有自定义控制器占位符,则在此版本中无法使用它们,除非您修改 controller.stub 并使其适用于您。

服务占位符也已更新。

有什么新功能?

  • 基于任务的 invokable 控制器现在成为可能。
  • 控制器的方法参数、主体和返回值变得相当详细,希望很有用。
  • 服务包含其任务的基本实现和适当的返回类型。

安装

如果您已安装 Packagified Laravel,您应该已经拥有此包。因此,请跳过安装。

composer require bakgul/laravel-file-creator

接下来,您需要通过执行以下命令发布设置。这样做后,您将在配置文件夹中有一个名为 packagify.php 的新文件。如果您检查 "files" 数组,您可以看到可以创建的文件类型。在文件的注释块中提供了相当详细的解释。

sail artisan packagify:publish-config

发布占位符后,您将能够根据需要更新占位符文件。删除未编辑的文件是安全的。

sail artisan packagify:publish-stub

命令签名

create:file {name} {type} {package?} {app?} {--p|parent=} {--t|taskless} {--f|force}

参数

  • name: subs/name:task

    • subs: 当您需要一个比文件类型路径模式提供的更深的文件结构时,您可以使用类似 sub1/sub2/sub3 的子文件夹。

    • name: 不带任何后缀的文件名。

    • task: 这是可选的。

      • exist: 您可以使用点分隔的方式设置一个或多个任务,如 "users:index" 或 "users:index.store.update。" 任务应位于文件类型及其对和全局任务列表(参见 config/packagify.php 中的任务数组)中。否则,它将被忽略。
      • missing: 如果基础文件类型有任务,将为每个任务生成单独的文件。否则,将生成单个文件。
  • 类型: name:variation:mod

    • name: 这是必需的,并且应该是 config/packagify.php 中的 files 数组中的键之一,除了 view, css, js, livewire, 和 component。这些键将由 Laravel Resource Creator 使用。所有详细解释都可以在 files 数组的注释块中找到。

    • variation: 这是可选的。

      • exist: 如果给定的文件类型有变体,您可以指定应创建哪个。
      • missing: 将使用默认变体,即变体数组中的第一个项目。
    • mod:当一个变体有多个mod时,您可以在这里指定它。例如,控制器的变体有默认和“api”模式。要创建一个api控制器,应使用controller::api,要创建嵌套api,应使用controller:nested:api

    • `

  • :在开发独立Laravel或独立包时不会使用。如果没有指定有效的包名,文件将生成在App命名空间中。

  • App:一些文件,如控制器,可能具有特定的应用。当我说app时,我指的是admin、web、desktop等。要在这特定的应用文件夹中创建这些文件,您必须指定应用名称。这些设置在config/packagify.php文件上的apps数组中。

选项

  • 父级:要创建嵌套控制器、父级模型或创建监听器,需要父级事件。当需要指定父级时,评估器会提醒您。

  • 无任务:具有任务如服务或测试的文件类型将默认为每个任务生成单独的文件,除非指定了任务。但有时,您可能想要创建一个没有任何任务的单独文件。在这种情况下,您需要在命令中附加“-t”或“--taskless”。这将取消默认的任务爆炸行为。

  • 强制:通常,如果文件已存在,则不会重新生成。如果传递此选项,则无论如何都会创建新文件。

打包化的Laravel

包含此包的主要包可以在这里找到: 打包化的Laravel

此包将安装的包