## app binding : xe.module 으로 바인딩 되어 있음 Module Facade 로 접근이 가능함. ## 사용법 ### 전체 Module 조회 * Register 를 통해 모든 Module 들을 조회한다 php $allModules = $handler->getAll(); ### 전체 Module 의 정보 조회 * getAll()을 통해 조회된 내역들을 바탕으로 Module class 들의 정보를 조회 php $allModules = $handler->getAllModuleInfo(); ### ModuleClassName 조회 * Module Id 를 전달하여 ClassName 조회 * 찾고자 하는 Module 의 Id 를 인자로 전달 php $className = $menuHandler->getModuleClassName($moduleId); ### ModuleClass 의 인스턴스화한 Object 획득 * Module Id(Module Id) 를 전달하여 인스턴스한 Object 를 획득 * 찾고자 하는 Module 의 Id 를 인자로 전달 php $moduleObject = $menuHandler->getModuleObject($moduleId);
Author: XE Developers (developers@xpressengine.com)
示例#1
0
 /**
  * Get setting page url by menu item
  *
  * @param MenuItem $item menu item instance
  * @return string|null
  */
 public function getInstanceSettingURI(MenuItem $item)
 {
     $menuType = $this->modules->getModuleObject($item->type);
     return $menuType::getInstanceSettingURI($item->getKey());
 }
 /**
  * editItemPermission
  * 선택된 메뉴의 아이템을 permission 을 수정하는 페이지 구성
  *
  * @param MenuHandler   $handler menu handler
  * @param ModuleHandler $modules module handler
  * @param string        $menuId  menu id
  * @param string        $itemId  item id
  *
  * @return RendererInterface
  */
 public function editItemPermission(MenuHandler $handler, ModuleHandler $modules, $menuId, $itemId)
 {
     $item = $handler->getItem($itemId);
     $menu = $item->menu;
     if ($menu->getKey() !== $menuId) {
         throw new InvalidArgumentHttpException(400);
     }
     try {
         $menuType = $modules->getModuleObject($item->type);
     } catch (NotFoundModuleException $e) {
         $menuType = null;
     }
     $permArgs = $this->getPermArguments($handler->permKeyString($item), [MenuHandler::ACCESS, MenuHandler::VISIBLE]);
     return XePresenter::make('menu.itemPermission', array_merge(['menu' => $menu, 'item' => $item, 'menuType' => $menuType], $permArgs));
 }
 /**
  * testGetModuleObjectThrowException
  *
  * @return void
  */
 public function testGetModuleObjectThrowException()
 {
     $this->setExpectedException('\\XpressEngine\\Menu\\Exceptions\\NotFoundModuleException');
     $register = $this->register;
     $register->shouldReceive('get')->andReturn(null);
     $moduleHandler = new ModuleHandler($register);
     $moduleHandler->getModuleObject('module/xpressengine@test');
 }