namespace Application;
-use InvalidArgumentException,
- Zend\Module\Manager,
- Zend\Config\Config,
- Zend\Di\Locator,
- Zend\EventManager\EventCollection,
- Zend\EventManager\StaticEventCollection;
+use Zend\Module\Manager,
+ Zend\EventManager\StaticEventManager,
+ Zend\Loader\AutoloaderFactory;
class Module
{
- protected $appListeners = array();
- protected $staticListeners = array();
+ protected $view;
protected $viewListener;
public function init(Manager $moduleManager)
{
- $this->initAutoloader($moduleManager->getOptions()->getApplicationEnv());
+ $this->initAutoloader();
+ $events = StaticEventManager::getInstance();
+ $events->attach('bootstrap', 'bootstrap', array($this, 'initializeView'), 100);
}
- protected function initAutoloader($env = null)
+ protected function initAutoloader()
{
- require __DIR__ . '/autoload_register.php';
+ AutoloaderFactory::factory(array(
+ 'Zend\Loader\ClassMapAutoloader' => array(
+ __DIR__ . '/autoload_classmap.php',
+ ),
+ 'Zend\Loader\StandardAutoloader' => array(
+ 'namespaces' => array(
+ __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
+ ),
+ ),
+ ));
}
- public function getConfig()
+ public function getConfig($env = null)
{
- return new Config(include __DIR__ . '/configs/module.config.php');
+ return include __DIR__ . '/configs/module.config.php';
}
- public function registerApplicationListeners(EventCollection $events, Locator $locator, Config $config)
+ public function initializeView($e)
{
- $view = $locator->get('view');
- $viewListener = $this->getViewListener($view, $config);
- $events->attachAggregate($viewListener);
- }
-
- public function registerStaticListeners(StaticEventCollection $events, Locator $locator, Config $config)
- {
- $view = $locator->get('view');
+ $app = $e->getParam('application');
+ $locator = $app->getLocator();
+ $config = $e->getParam('modules')->getMergedConfig();
+ $view = $this->getView($app);
$viewListener = $this->getViewListener($view, $config);
-
+ $app->events()->attachAggregate($viewListener);
+ $events = StaticEventManager::getInstance();
$viewListener->registerStaticListeners($events, $locator);
}
$this->viewListener = $viewListener;
return $viewListener;
}
+
+ protected function getView($app)
+ {
+ if ($this->view) {
+ return $this->view;
+ }
+
+ $di = $app->getLocator();
+ $view = $di->get('view');
+ $url = $view->plugin('url');
+ $url->setRouter($app->getRouter());
+
+ $view->plugin('headTitle')->setSeparator(' - ')
+ ->setAutoEscape(false)
+ ->append('Application');
+ $this->view = $view;
+ return $view;
+ }
}