2dojo / module_manager
0.0.2
2017-10-05 08:34 UTC
Requires
- 2dojo/module: 0.*
- laravel/framework: ~5.5
Requires (Dev)
- mockery/mockery: ^0.9.7
- orchestra/testbench: ~3.5
- phpunit/phpunit: ~6.0
This package is not auto-updated.
Last update: 2024-09-30 00:21:06 UTC
README
目录
安装
模块管理器可以通过 composer 安装
composer require 2dojo/module_manager
此包使用 Laravel 自动发现功能,所以 ServiceProvider 和 Facade 会自动注册。
安装此包后,您需要在您的 AppServiceProvider boot 方法中调用 ModuleManager facade 的 initializeModules 方法。
<?php namespace App\Providers; ... class AppServiceProvider extends ServiceProvider { public function boot() { ModuleManager::initializeModules(); } }
如果您想将模块选项存储在数据库中,您需要发布迁移和配置
php artisan vendor:publish --provider="TwoDojo\ModuleManager\ModuleManagerServiceProvider"
运行迁移
php artisan migrate
最后,将配置中的注册条目更改为 database
// config/module_manager.php 'registry' => 'database'
模块开发
您可以在独立的 composer 包或您的 laravel 项目中创建模块,例如在 app/Modules 目录。
<?php namespace App\Modules; use TwoDojo\Module\AbstractModule; class ExampleModule extends AbstractModule { /** * @var string The module display name */ protected $name = 'ExampleModule'; }
之后,您需要在 ModuleManager 中注册模块,例如在您的 AppServiceProvider register 方法中,或者如果您创建了一个独立的 composer 包,您可以在您的包 ServiceProvider boot 方法中注册。
<?php namespace App\Providers; ... class PackageServiceProvider extends ServiceProvider { public function boot() { ModuleManager::registerModule(ExampleModule::class); ... } }
模块管理器方法
registerModule
/** * Register a module to the module manager. * * @param string $moduleClass The module class * @return bool */ public function registerModule(string $moduleClass) : bool
initializeModules
/** * Initialize the registered modules */ public function initializeModules()
enableModule
/** * Enable a module * * @param $uniqueName The module unique name * @return bool */ public function enableModule($uniqueName) : bool
disableModule
/** * Disable a module * * @param string $uniqueName The module unique name * @return bool */ public function disableModule($uniqueName) : bool