jminayat / modules-laravel
模块化Laravel应用
Requires
- php: ^7.0
- chumper/zipper: 1.0.x
Requires (Dev)
- orchestra/testbench: ^3.5
- phpunit/phpunit: ^6
README
jminayat/modules-laravel 是一个用于管理Laravel应用模块的包。兼容Laravel版本5.5。
安装
通过composer安装此包。
composer require jminayat/modules-laravel
由于模块不会自动加载,您需要加载模块文件夹。您可以使用 psr-4来自动加载您的模块。
编辑主composer文件,并添加
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
}
}
不要忘记执行 composer dump-autoload 。
您可以发布迁移文件。
php artisan vendor:publish --provider="JMinayaT\Modules\ModulesServiceProvider" --tag="migrations"
迁移发布后,您可以通过执行迁移来创建模块表
php artisan migrate
您可以选择发布配置文件。
php artisan vendor:publish --provider="JMinayaT\Modules\ModulesServiceProvider" --tag="config"
发布后,config/modules.php 配置文件包含
<?php return [ /* * Name of the table to use * default value but you may easily change it to any table you like. */ 'table_name' => 'modules', ];
使用
创建模块
要创建一个新的模块,只需运行以下命令
php artisan module:create <module-name>
<module-name>- 用所需模块的名称替换。module description- 编写创建的模块的描述。
要创建新模块时自动添加控制器、模型和迁移,请使用:-c -d -m
php artisan module:create <module-name> -c -d -m
-c或--controller- 创建控制器。-d或--model- 创建模型。-m或--migration- 创建迁移。
文件夹结构
modules/
├── Blog/
├── Controllers/
├── Database/
├── migrations/
├── Models/
├── Resources/
├── Assets/
├── lang/
├── views/
├── Route/
├── web.php
├── api.php
├── module.json
Artisan命令
注意命令名称使用 "test" 作为示例模块的名称
module:active
激活或禁用模块,使用 true 或 false。
php artisan module:active test true
module:create
创建新模块。
php artisan module:create test
选项
-c或--controller- 创建控制器。-d或--model- 创建模型。-m或--migration- 创建迁移。
module:delete
删除模块。
php artisan module:delete test
module:install
从zip文件安装模块。
php artisan module:install var/this-path/test.zip
module:list
显示所有模块的列表。
php artisan module:list
module:make-controller
创建新的模块控制器。
php artisan module:make-controller test TestController
module:make-middleware
创建新的模块中间件类。
php artisan module:make-middleware test TestMiddleware
module:make-request
创建新的模块请求类。
php artisan module:make-request test TestRequest
module:make-model
创建新的模块模型。
php artisan module:make-model test TestModel
选项
-m或--migration- 创建迁移。
module:make-migration
创建新的模块迁移。
php artisan module:make-migration test create_tests_table
module:make-seeder
创建新的模块种子类。
php artisan module:make-seeder test testSeeder
module:make-factory
创建新的模块工厂类。
php artisan module:make-factory test testFactory
module:make-test
创建新的模块测试类。
php artisan module:make-test test userTest
module:make-policy
创建新的模块策略类。
php artisan module:make-policy test testPolicy
module:publish
发布模块zip文件。
php artisan module:publish test
module:up
升级配置文件模块json。
php artisan module:up test
module:migrate
迁移所有模块的数据库。
php artisan module:migrate
要迁移特定模块,请使用
php artisan module:migrate test
module:rollback
回滚最后模块的数据库迁移。
php artisan module:rollback
要回滚特定模块,请使用
php artisan module:rollback test
module:seed
模块种子数据库中的记录。
php artisan module:sedd
要种子特定模块,请使用
php artisan module:seed test
门面方法
获取所有模块。
Module::all();
获取特定模块。
Module::get('test');
获取所有激活模块。
Module::getEnabled();
获取所有禁用模块。
Module::getDisabled();
检查指定的模块。如果存在,将返回 true,否则返回 false。
Module::has('test');
计算所有模块的数量。
Module::count();
使用zip文件安装模块。
Module::install('path/file.zip');
迁移指定模块的数据库。
Module::moduleMigrate('test');
回滚指定模块的数据库。
Module::moduleRollback('test');
迁移所有模块的数据库。
Module::moduleMigrateAll();
回滚所有模块的数据库。
Module::moduleRollbackAll();
模块方法
从特定模块获取实体。
$module = Module::get('test');
获取模块名称的studlycase格式。
$module->studlyName();
获取模块的状态,如果它是激活或禁用。
$module->status();
启用指定的模块。
$module->active();
启用指定的模块。
$module->disable();
删除指定的模块。
$module->delete();
获取模块路径。
$module->getPath();
获取模块 JSON 文件。
$module->getModuleJson();
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。