erickjmenezes/modularavel

在您的Laravel项目中创建独立的模块

v1.1.2 2024-03-19 23:09 UTC

This package is auto-updated.

Last update: 2024-09-20 00:22:13 UTC


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