當前位置: 首頁>>代碼示例>>PHP>>正文


PHP ModuleEvent::getApplication方法代碼示例

本文整理匯總了PHP中Zend\ModuleManager\ModuleEvent::getApplication方法的典型用法代碼示例。如果您正苦於以下問題:PHP ModuleEvent::getApplication方法的具體用法?PHP ModuleEvent::getApplication怎麽用?PHP ModuleEvent::getApplication使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Zend\ModuleManager\ModuleEvent的用法示例。


在下文中一共展示了ModuleEvent::getApplication方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: onLoadModules

 /**
  * loadModules
  *
  * Once all the modules are loaded, loop
  *
  * @param  ModuleEvent $e
  * @return void
  */
 public function onLoadModules(ModuleEvent $e)
 {
     $moduleManager = $e->getTarget();
     $events = $moduleManager->getEventManager()->getSharedManager();
     if (!$events) {
         return;
     }
     // Shared instance for module manager
     $events->attach('Zend\\Mvc\\Application', ModuleManager::EVENT_BOOTSTRAP, function (MvcEvent $e) use($moduleManager) {
         $moduleClassName = get_class($moduleManager);
         $moduleClassNameArray = explode('\\', $moduleClassName);
         $moduleClassNameAlias = end($moduleClassNameArray);
         $application = $e->getApplication();
         $services = $application->getServiceManager();
         if (!$services->has($moduleClassName)) {
             $services->setAlias($moduleClassName, $moduleClassNameAlias);
         }
     }, 1000);
     if (0 === count($this->modules)) {
         return;
     }
     // Attach to the bootstrap event if there are modules we need to process
     $events->attach('Zend\\Mvc\\Application', ModuleManager::EVENT_BOOTSTRAP, [$this, 'onBootstrap'], 1000);
 }
開發者ID:zendframework,項目名稱:zend-modulemanager,代碼行數:32,代碼來源:LocatorRegistrationListener.php

示例2: __invoke

 /**
  * @param ModuleEvent $e
  * @return void
  */
 public function __invoke(ModuleEvent $e)
 {
     $module = $e->getModule();
     if (!$module instanceof ThemeProviderInterface && !method_exists($module, 'initTheme')) {
         return;
     }
     $moduleManager = $e->getTarget();
     $events = $moduleManager->getEventManager();
     $sharedEvents = $events->getSharedManager();
     $module_directory = $module->getDir();
     $sharedEvents->attach('Zend\\Mvc\\Application', MvcEvent::EVENT_BOOTSTRAP, function ($e) use($module_directory) {
         $application = $e->getApplication();
         $eventManager = $application->getEventManager();
         $serviceManager = $application->getServiceManager();
         $themeManager = $serviceManager->get('ThemeManager');
         $theme = $themeManager->getTheme();
         $theme_folder = $theme->getFolder();
         $theme_path = $module_directory . '/themes/' . $theme_folder;
         if (!is_dir($theme_path)) {
             $theme = $themeManager->getDefaultTheme();
             $theme_folder = $theme->getFolder();
             if (!is_dir($theme_path)) {
                 throw new MissingDefaultThemeException();
             }
         }
         $theme_path = $module_directory . '/themes/' . $theme->getFolder();
         // Views
         // Add the folder to the template resolver.
         $templatePathResolver = $serviceManager->get('Zend\\View\\Resolver\\TemplatePathStack');
         $templatePathResolver->addPath($theme_path);
         // Layout
         if (file_exists($theme_path . '/layout.phtml')) {
             $templateMapResolver = $serviceManager->get('Zend\\View\\Resolver\\TemplateMapResolver');
             $layout_name = $theme->getLayoutName();
             if (!$templateMapResolver->has($layout_name)) {
                 $templateMapResolver->add($layout_name, $theme_path . '/layout.phtml');
             }
         }
     });
     $sharedEvents->attach($module->getNamespace(), MvcEvent::EVENT_DISPATCH, function ($e) use($module_directory) {
         // Set the layout for this module if available
         $serviceManager = $e->getApplication()->getServiceManager();
         $themeManager = $serviceManager->get('ThemeManager');
         $theme = $themeManager->getTheme();
         $theme_folder = $theme->getFolder();
         $theme_path = $module_directory . '/themes/' . $theme_folder;
         if (!is_dir($theme_path)) {
             $theme = $themeManager->getDefaultTheme();
             $theme_folder = $theme->getFolder();
             if (!is_dir($theme_path)) {
                 throw new MissingDefaultThemeException();
             }
         }
         $layout_name = $theme->getLayoutName();
         $templateMapResolver = $serviceManager->get('Zend\\View\\Resolver\\TemplateMapResolver');
         if ($templateMapResolver->has($layout_name)) {
             $viewModel = $e->getViewModel();
             $viewModel->setTemplate($layout_name);
         }
     }, 100);
 }
開發者ID:shadowfax,項目名稱:zf-themes,代碼行數:65,代碼來源:ThemeListener.php


注:本文中的Zend\ModuleManager\ModuleEvent::getApplication方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。