ifo/laravel-make-packager

1.0.6 2024-09-05 06:38 UTC

This package is auto-updated.

Last update: 2024-09-06 12:29:25 UTC


README

本软件包是一个命令行工具,可以帮助您在花费大量时间的情况下为Laravel应用程序构建一个完全结构的软件包。您不再需要为您的软件包初始化框架而烦恼。相反,您可以专注于编写源代码,而Laravel Packager会为您组织软件包结构。

第0步:安装前的设置

在安装之前,请将必要的文件添加到您的根项目。您可以在以下链接中找到该文件和说明

自定义路由提供者设置

第1步:安装软件包

运行以下命令安装软件包

composer require ifo/laravel-make-packager

第2步:自动加载

安装软件包后,运行以下命令自动加载软件包

composer dump-autoload

软件包已成功安装。

如何创建自定义软件包

第1步:创建新软件包

运行以下命令创建新软件包

php artisan package:make YourPackageName

此命令将为您的软件包创建文件夹结构和必要文件,包括路由、ServiceProvider 和用于强制规则和验证的 AbstractController

您可以参考下面的截图

Package Structure

文件夹结构

以下是文件夹结构将呈现的样子

--> packageName
    --> composer.json
    --> module.json
    --> src
        --> Config
        --> Console
        --> Database
        --> Events
        --> Http
            --> Controllers
                --> AbstractController // For rules and validations, extends in controllers
                --> PackageNameController
            --> Middleware
            --> Requests
        --> Jobs
        --> Listeners
        --> Models
        --> Providers
            --> ModuleServiceProvider
            --> RouteServiceProvider
        --> Resources
        --> routes
            --> V1.php
            --> web.php
        --> Test
            -->Unit
            -->Feature

第2步:注册软件包

要注册软件包,请按照以下设置步骤操作

第1步:创建软件包目录

创建一个 packages 目录,并将 MakePackager 目录移动到其中。

第2步:更新Composer自动加载

将软件包命名空间添加到 composer.json 文件中的 psr-4 键下

"autoload": {
   "psr-4": {
      "Packages\\MakePackager\\": "packages/MakePackager/src"
   }
}

第3步:注册ServiceProvider

  • 对于Laravel版本低于10:在 config/app.php 文件中的 providers 数组中注册 ServiceProvider

'providers' => [
    Packages\MakePackager\Providers\MakePackagerServiceProvider::class,
]
  • 对于Laravel版本10及以上:在 app/Providers/AppServiceProvider.php 文件中的 register 方法中注册 ServiceProvider

public function register(): void
{
    $this->app->register(CustomPackageServiceProvider::class);
}

第4步:初始设置完成

运行以下命令完成设置

composer dump-autoload
php artisan config:cache
php artisan config:clear

添加中间件

如果您想自动应用中间件身份验证,请添加 CustomRouteServiceProvider。这将确保默认添加中间件。

如果您不想使用自定义中间件设置,您可以将 CustomRouteServiceProvider 的扩展名删除,并直接扩展 ServiceProvider

MakePackager Artisan命令

这里有一些自定义的Artisan命令来创建特定的软件包

php artisan package:make-job YourFileName YourPackageName

为特定软件包创建作业

php artisan package:make-migration YourFileName YourPackageName

为特定软件包创建迁移文件

php artisan package:make-listener YourFileName YourPackageName

为特定软件包创建监听器

php artisan package:make-event YourFileName YourPackageName

为特定软件包创建事件

sudo php artisan package:make-test SamleTest Myo --feature

此命令在特定软件包中创建一个测试文件。

  • 第一个参数(FileName):您要创建的测试文件名称。

  • 第二个参数(PackageName):测试文件将放置的软件包名称。

  • 第三个参数(--feature):可选标志。如果提供,测试文件将创建在 Feature 文件夹下。如果省略,则默认在 Unit 文件夹下创建测试文件。

本软件包具有一个附加功能:它会自动将测试和单元脚本注册到根项目的 phpunit.xml 文件中,以便它们可以顺利执行。

未来的更新中将添加更多Artisan命令。