Esempio 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;
 }
Esempio n. 2
0
 public function registerDbBinder()
 {
     $config = $this->container->get('config');
     $this->container->set('db', function ($container) use($config) {
         $default = $config->get('db.default');
         $adapters = $config->get('db.adapters', []);
         if (!isset($adapters[$default]) || !isset($adapters[$default]['adapter'])) {
             return \null;
         }
         return Database::factory($adapters[$default]['adapter'], $adapters[$default]);
     }, \false);
     if ($config->get('db.set_default_adapter')) {
         TableAbstract::setDefaultAdapter($this->container->get('db'));
     }
     if ($config->get('db.set_default_cache')) {
         TableAbstract::setDefaultMetadataCache($this->container->get('cache'));
     }
 }