jmslapa / laramodules
一个用于构建与 Laravel 应用程序解耦度极高的模块的库。
0.1.2-rc
2021-09-11 20:16 UTC
Requires
- php: ^7.4|^8
- ext-dom: *
Requires (Dev)
- orchestra/testbench: ^6.20
- phpunit/phpunit: ^9.5
README
用于构建高度解耦的 Laravel 模块化应用的库
它是如何工作的?
该库背后的理念是使您的模块与应用程序核心真正解耦。这意味着您可以从源目录中删除模块或添加模块,而您的应用程序将自动吸收或忽略模块中实现的功能,就像真正的插件一样。考虑到这一点,设计了 ModulesServiceProvider,它可以自动加载标准目录中包含的任何提供者、路由文件和迁移,即只需实现并通过服务提供者注册,与核心的集成应该是自动的。然而,当然,模块之间的耦合程度将直接取决于您的代码。
安装
composer require jmslapa/laramodules
php artisan vendor:publish --provider=Jmslapa\Laramodules\Providers\ModulesServiceProvider
Composer.json
在项目的 composer.json 文件的 psr-4 部分添加以下条目
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
},
创建一个新的模块
php artisan module:make <module name>
初始模块目录结构,定义在 config/modules.php 中
<?php
return [
'directories' => [
'Http' => [
'Controllers'
],
'Migrations',
'Models',
'Providers',
'Repositories',
'Services',
'Routes',
'Tests' => [
'Feature',
'Unit'
],
]
];