Пример #1
1
 /**
  * @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
 /**
  * @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());
     }
 }
Пример #4
0
 /**
  * @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()));
 }
Пример #5
0
 public function testModuleRegister()
 {
     $moduleLoader = new ModuleLoader(DI::getDefault());
     $modules = $moduleLoader->dump(TESTS_ROOT_DIR . '/fixtures/app/modules/', TESTS_ROOT_DIR . '/fixtures/app/config/');
     $app = new Application();
     $app->registerModules($modules);
     $this->assertSameSize($modules, $app->getModules());
     $this->assertTrue(class_exists('Test\\Models\\Fake'));
     $this->assertTrue(class_exists('Test\\Components\\Fake'));
     $this->assertTrue(class_exists('Test\\Services\\Fake'));
 }
Пример #6
0
 /**
  * @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
 /**
  * @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());
             }
         }
     }
 }
Пример #8
0
 public function setUp()
 {
     $_SERVER['HTTP_HOST'] = 'vegas.dev';
     $_SERVER['REQUEST_URI'] = '/';
     $this->di = DI::getDefault();
     $modules = (new ModuleLoader())->dump(TESTS_ROOT_DIR . '/fixtures/app', TESTS_ROOT_DIR . '/fixtures/app/config/');
     $app = new Application();
     $app->registerModules($modules);
     require_once TESTS_ROOT_DIR . '/fixtures/app/Bootstrap.php';
     $config = (require TESTS_ROOT_DIR . '/fixtures/app/config/config.php');
     $config = new \Phalcon\Config($config);
     $bootstrap = new \Bootstrap($config);
     $bootstrap->setup();
     $this->bootstrap = $bootstrap;
 }
Пример #9
0
 public function setUp()
 {
     parent::setUp();
     $di = DI::getDefault();
     $di->set('view', function () use($di) {
         $view = new View($di->get('config')->application->view->toArray());
         $path = $di->get('config')->application->moduleDir . '/Test/views';
         if (file_exists($path)) {
             $view->setViewsDir($path);
         }
         return $view;
     });
     $modules = (new ModuleLoader($di))->dump($di->get('config')->application->moduleDir, $di->get('config')->application->configDir);
     $app = new Application();
     $app->registerModules($modules);
     $this->di = $di;
 }
Пример #10
0
 /**
  * @param array $modules
  */
 public function registerModules(array $modules)
 {
     $availableModules = [];
     foreach ($modules as $moduleName => &$moduleConfig) {
         if (!is_string($moduleName)) {
             $moduleName = $moduleConfig;
             $moduleConfig = [];
         }
         if (!isset($moduleConfig['path'])) {
             $moduleConfig['path'] = Path::join($this->application->getApplicationDirectory(), $this->getModulesDirectory(), $moduleName, self::MODULE_BOOTSTRAP . '.php');
         }
         if (!isset($moduleConfig['viewsDir']) || $moduleConfig['viewsDir'] !== false) {
             $moduleConfig['viewsDir'] = Path::join($this->getModulesDirectory(), $moduleName, 'View');
         }
         if (!isset($moduleConfig['className'])) {
             $moduleConfig['className'] = sprintf('%s\\%s', $moduleName, self::MODULE_BOOTSTRAP);
         }
         $moduleConfig['name'] = $moduleName;
         $moduleConfig['dir'] = dirname($moduleConfig['path']);
         $availableModules[$moduleName] = $moduleConfig;
     }
     $this->application->registerModules($availableModules, true);
 }
Пример #11
0
 /**
  * @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);
 }
Пример #12
0
 /**
  * Runs application
  *
  * @param string $uri
  * @return mixed|void
  */
 public function run($uri = null)
 {
     return $this->application->handle($uri)->getContent();
 }