erickjmenezes / modularavel
在您的Laravel项目中创建独立的模块
v1.1.2
2024-03-19 23:09 UTC
Requires
- php: ^8.2
- laravel/framework: ^10.26
Requires (Dev)
- orchestra/workbench: ^0.4.1
- pestphp/pest: ^2.21
- pestphp/pest-plugin-faker: ^2.0
- pestphp/pest-plugin-laravel: ^2.2
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.15
README
请勿使用此包。
在大型Laravel项目中,我们经常需要处理多个路由文件,或者成百上千个模型、控制器,项目变得难以维护。但如何避免呢?
此包的概念是提供在Laravel项目中创建小型包或库的能力,同时不失去单体仓库架构的舒适度。
安装
composer require erickjmenezes/modularavel
如何使用
php artisan make:lib <lib-name>
使用此命令,包将在 $PROJECT_ROOT$/libs/<lib-name>
内生成一个新的库,具有最基本的结构。在这里,您可以开发并测试您的新功能,而不会影响现有的功能。
就这样!
看看生成的结构
.
├── app/
├── public/
├── bootstrap/
├── config/
├── database/
├── resources/
├── routes/
├── storage/
├── vendor/
├── tests/
└── libs/
└── <lib-name>/
├── src/
│ ├── Http/
│ │ ├── Controllers/
│ │ ├── Resources/
│ │ └── Requests/
│ ├── Models/
│ └── Providers/
├── config/
├── resources/
│ └── views/
├── tests/
│ ├── Unit/
│ └── Feature/
├── routes/
├── vendor/
├── composer.json
└── composer.lock
自定义
默认情况下,生成的库不会包含您上面看到的全部文件夹。您必须选择您想要的。运行以下命令以查看您可以自定义的内容
php artisan make:lib --help
生成的库...
- 自动识别。您不需要做任何事。
- 有自己的
composer.json
。- 在lib文件夹中安装包以舒适地开发。一切准备就绪后,只需在项目根目录下运行 composer install,所有内容都将同步。
- 已准备好创建新的控制器、路由、视图、命令等。
- 如果您已经知道如何为Laravel开发包,您会感到宾至如归。它就像任何其他包一样。如果不熟悉,也没有问题,您也会感到宾至如归!
- 易于解耦。
- 如果您出于某种原因想要将库从libs文件夹中解耦,并将其放入独立的仓库中,这几乎和复制粘贴到另一个仓库一样简单。
- 您需要几个额外的步骤来完成迁移,但这是直截了当的。
- 运行
composer remove libs/<lib-name>
。 - 删除/移动
libs
文件夹内的lib文件夹。 - 从根
composer.json
中的repositories
部分删除引用。 - 根据您的需求更新库的
testbench.yaml
。有关更多信息,请参阅orchestral/testbench
。
- 运行