Ejemplo n.º 1
0
 /**
  * @return \Micro\Application\Application
  */
 public function registerDefaultServices()
 {
     if (!isset($this['request'])) {
         $this['request'] = function () {
             return new Http\Request();
         };
     }
     if (!isset($this['response'])) {
         $this['response'] = function () {
             return new Http\Response\HtmlResponse();
         };
     }
     if (!isset($this['event'])) {
         $this['event'] = function () {
             return new Event\Manager();
         };
     }
     if (!isset($this['exception.handler'])) {
         $this['exception.handler'] = function ($app) {
             return $app;
         };
     }
     if (!isset($this['exception.handler.fallback'])) {
         $this['exception.handler.fallback'] = function ($app) {
             return $app;
         };
     }
     if (!isset($this['acl'])) {
         $this['acl'] = function ($app) {
             if ($app->get('config')->get('acl.enabled', 1)) {
                 return new Acl();
             }
             return \null;
         };
     }
     if (!isset($this['caches'])) {
         $this['caches'] = function ($app) {
             $adapters = $app['config']->get('cache.adapters', []);
             $caches = [];
             foreach ($adapters as $adapter => $config) {
                 $caches[$adapter] = Cache::factory($config['frontend']['adapter'], $config['backend']['adapter'], $config['frontend']['options'], $config['backend']['options']);
             }
             return $caches;
         };
     }
     if (!isset($this['cache'])) {
         $this['cache'] = function ($app) {
             $adapters = $app->get('caches');
             $default = (string) $app['config']->get('cache.default');
             return isset($adapters[$default]) ? $adapters[$default] : \null;
         };
     }
     /**
      * Create router with routes
      */
     if (!isset($this['router'])) {
         $this['router'] = function ($app) {
             return new Router($app['request']);
         };
     }
     /**
      * Create default db adapter
      */
     if (!isset($this['db'])) {
         $this['db'] = function ($app) {
             $default = $app['config']->get('db.default');
             $adapters = $app['config']->get('db.adapters', []);
             if (!isset($adapters[$default])) {
                 return \null;
             }
             $db = Database::factory($adapters[$default]['adapter'], $adapters[$default]);
             TableAbstract::setDefaultAdapter($db);
             TableAbstract::setDefaultMetadataCache($app['cache']);
             return $db;
         };
     }
     /**
      * Create default translator
      */
     if (!isset($this['translator'])) {
         $this['translator'] = function ($app) {
             return new Translator();
         };
     }
     /**
      * Register session config
      */
     $sessionConfig = $this['config']->get('session', []);
     if (!empty($sessionConfig)) {
         Session::register($sessionConfig);
     }
     CoreLog::register();
     CoreException::register();
     return $this;
 }
Ejemplo n.º 2
0
 public function marshalConfigKeys()
 {
     $config = $this->container->get('config');
     $middlewares = $config->get('middleware', []);
     if (!empty($middlewares)) {
         foreach ($middlewares as $middleware) {
             if (is_array($middleware)) {
                 $this->add($middleware[0], $middleware[1]);
             } else {
                 $this->add($middleware);
             }
         }
     }
     $dependencies = $config->get('dependencies', []);
     if (!empty($dependencies)) {
         $this->container->configure($dependencies);
     }
     $files = $config->get('microloader.files', []);
     if (!empty($files)) {
         \MicroLoader::addFiles($files);
     }
     $session = $config->get('session', []);
     if (!empty($session)) {
         Session::register($session);
     }
 }