예제 #1
1
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     $config = $application->getConfig()->application;
     if (isset($config->view) && $config->view !== false) {
         $view = new View();
         $view->setViewsDir($config->view->viewsDir);
         $view->setLayoutsDir($config->view->layoutsDir);
         $view->setLayout($config->view->layout);
         $application->getDI()->setShared('view', $view);
     }
 }
예제 #2
0
 public function setUp()
 {
     parent::setUp();
     $this->app = self::$application;
     $this->di = $this->app->getDI();
     $this->config = $this->app->getConfig();
 }
예제 #3
0
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     $moduleManager = new ModuleManager($application);
     $moduleManager->setModulesDirectory($application->getConfig()->application->modulesDirectory);
     $modules = $application->getConfig()->application->modules;
     $moduleManager->registerModules($modules ? $modules->toArray() : []);
     // Setup configs
     $application->getConfig()->merge($moduleManager->getConfigs($application->getModules()));
 }
예제 #4
0
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     // Initializes router
     $router = new Router(false);
     $router->setDI($application->getDI());
     // default routes
     if (isset($application->getConfig()->application->defaultRoutes)) {
         $defaultRoutesPath = $application->getConfig()->application->defaultRoutes;
         if (file_exists($defaultRoutesPath)) {
             require $defaultRoutesPath;
         }
     }
     // Modules routes
     (new Router\Loader())->autoload($application->getModules(), $router);
     $application->getDI()->setShared('router', $router);
 }
예제 #5
0
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     $config = $application->getConfig();
     if (isset($config->application->sharedServices) && $config->application->sharedServices) {
         $injector = new Injector($application->getDI());
         $injector->inject($config->application->sharedServices->toArray());
     }
 }
예제 #6
0
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Application $application
  * @return array
  */
 public function getNamespaces(Application $application)
 {
     $namespaces = [];
     foreach ($application->getModules() as $module) {
         $namespaces[$module['name']] = $module['dir'];
     }
     $config = $application->getConfig();
     if (isset($config->application->autoload)) {
         $namespaces = array_merge($namespaces, $config->application->autoload->toArray());
     }
     return $namespaces;
 }
예제 #7
0
파일: Boot.php 프로젝트: vegas-cmf/mvc
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     $config = $application->getConfig();
     if (isset($config->application->initializers)) {
         foreach ($config->application->initializers as $initializer) {
             $reflection = new \ReflectionClass($initializer);
             $initializerInstance = $reflection->newInstance();
             if ($initializerInstance instanceof Application\InitializerInterface) {
                 $initializerInstance->initialize($application->getDI());
             }
         }
     }
 }