注:用于个人学习,资料未补充完整,不喜勿喷
官网
Laravel官网文档
1、安装
(1)、composer require nwidart/laravel-modules
(2)、php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
(3)、composer.json文件修改
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
}
(4)、config/app.php下添加
添加服务提供者
'providers'=>[
Nwidart\Modules\LaravelModulesServiceProvider::class,
]
添加别名
'aliases'=>[
'Module'=>Nwidart\Modules\Facades\Module::class,
]
(5)、执行:composer dump-autoload
(6)、创建:php artisan module:make Blog
目录结构:
image.png
2、使用
(1)、模块命令
php artisan module:make Blog 创建一个(Blog)新模块
php artisan module:use 使用一个模块(这允许执行其他命令时不用输入模块名)
php artisan module:unuse 和上面相反
php artisan module:list 列出所有可用模块
php artisan module:migrate 执行某个模块的数据迁移(或者所有模块的)
php artisan module:migrate-rollback Blog 执行模块最近一次迁移的回滚
php artisan module:migrate-refresh Blog 执行模块所有回滚后执行所有迁移
php artisan module:migrate-reset Blog 执行模块所有回滚
php artisan module:seed Blog 执行模块数据填充
php artisan module:publish-migration Blog 发布迁移
php artisan module:publish-config Blog 发布配置
php artisan module:publish-translation Blog 发布语言包
php artisan module:enable Blog 开启模块
php artisan module:disable Blog 关闭模块
php artisan module:update Blog 升级模块
(2)、生成器
php artisan module:make-command CreatePostCommand Blog
php artisan module:make-migration create_posts_table Blog
php artisan module:make-seed seed_fake_blog_posts Blog
php artisan module:make-controller PostsController Blog
php artisan module:make-model Post Blog (可以使用-m同步生成迁移文件)
php artisan module:make-provider BlogServiceProvider Blog
php artisan module:make-middleware CanReadPostsMiddleware Blog
php artisan module:make-mail SendWeeklyPostsEmail Blog
php artisan module:make-notification NotifyAdminOfNewComment Blog
php artisan module:make-listener NotifyUsersOfANewPost Blog
php artisan module:make-listener NotifyUsersOfANewPost Blog --event=PostWasCreated
php artisan module:make-listener NotifyUsersOfANewPost Blog --event=PostWasCreated --queued
php artisan module:make-request CreatePostRequest Blog
php artisan module:make-event BlogPostWasUpdated Blog
php artisan module:make-job JobName Blog(可以使用-sync生成同步任务)
php artisan module:route-provider Blog 为指定的模块生成给定的路由服务提供程序。
php artisan module:make-factory FactoryName Blog
php artisan module:make-policy PolicyName Blog
php artisan module:make-rule ValidationRule Blog
php artisan module:make-resource PostResource Blog
php artisan module:make-resource PostResource Blog --collection
php artisan module:make-test EloquentPostRepositoryTest Blog
(3)、模块方法
$path = module_path('Blog'); 获取模块路径
$module = Module::find('blog');
$module->getName();
$module->getLowerName();
$module->getStudlyName();
$module->getPath(); 模块路径
$module->getExtraPath('Assets'); 模块其他路劲
$module->disable();
$module->enable();
$module->delete();
$module->getRequires(); 获取模块依赖的其他模块
3、可能出现的问题
(1)报错:Class "Illuminate\Foundation\Console\ShowModelCommand" not found
laravel与扩展nwidart/laravel-modules版本不匹配,安装时指定扩展版本
转载于:Laravel 模块化开发