ifo / laravel-make-packager
README
本软件包是一个命令行工具,可以帮助您在花费大量时间的情况下为Laravel应用程序构建一个完全结构的软件包。您不再需要为您的软件包初始化框架而烦恼。相反,您可以专注于编写源代码,而Laravel Packager会为您组织软件包结构。
第0步:安装前的设置
在安装之前,请将必要的文件添加到您的根项目。您可以在以下链接中找到该文件和说明
第1步:安装软件包
运行以下命令安装软件包
composer require ifo/laravel-make-packager
第2步:自动加载
安装软件包后,运行以下命令自动加载软件包
composer dump-autoload
软件包已成功安装。
如何创建自定义软件包
第1步:创建新软件包
运行以下命令创建新软件包
php artisan package:make YourPackageName
此命令将为您的软件包创建文件夹结构和必要文件,包括路由、ServiceProvider
和用于强制规则和验证的 AbstractController
。
您可以参考下面的截图

文件夹结构
以下是文件夹结构将呈现的样子
--> 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命令。