Example #1
0
 /**
  * モジュールローダを取得する
  */
 protected function bootModuleLoader()
 {
     $loader = new ModuleLoader($this->newScope());
     // 設定
     $loader->on('moduleloader.loadmodule', function ($e) {
         if ($this->config()->has('module.' . $e->name)) {
             $e->module->configure($this->config()->get('module.' . $e->name));
         }
     });
     return $loader;
 }
Example #2
0
 /**
  * モジュールテスト
  */
 public function testModule()
 {
     $loader = new ModuleLoader(Scope::create()->setComponent('autoloader', function () {
         return Nora::Autoloader();
     }));
     // モジュールのロードディレクトリを作成
     $loader->addModulePath(TEST_PROJECT_PATH . '/modules');
     // モジュール生成時の処理
     $loader->on('moduleloader.loadmodule', function ($e) {
         if ($e->name === 'hoge') {
             $e->module->configure(['a' => '1234']);
         }
         if ($e->name === 'hoge2') {
             $e->module->configure(['a' => '5678']);
         }
     });
     $hoge = $loader->loadModule('hoge');
     $this->assertEquals('1234', $hoge->sayValueOfA());
     $this->assertEquals('fuga', $hoge->sayValueOfB());
     $this->assertEquals('5678', $loader->loadModule('hoge2')->sayValueOfA());
 }