Exemplo n.º 1
0
 /**
  * @param Config $config
  * @return Route
  */
 public static function element($config)
 {
     $spec = $config->core();
     $type = $config->value('type');
     //
     if ($type) {
         $class = str_replace('~', __NAMESPACE__, $type);
         $factory = "{$class}::factory";
         if (is_callable($factory)) {
             $route = $factory($config);
         } else {
             throw new Exception\RuntimeException("Factory [{$factory}] is not callable", 1);
         }
         if (!$route instanceof Route) {
             throw new Exception\RuntimeException("Factory [{$factory}] did not resurn a Route instance", 2);
         }
     } elseif (isset($spec['regex'])) {
         $route = RegexRoute::factory($config);
     } elseif (isset($spec['path']) || isset($spec['domain'])) {
         $route = SimpleRoute::factory($config);
     } else {
         $route = SegmentRoute::factory($config);
     }
     return $route;
 }
Exemplo n.º 2
0
 /**
  * @return boolean
  */
 protected function tableExists()
 {
     $exists = null;
     $table = $this->params->value('session_table');
     if ($table) {
         $db = $this->getDb();
         try {
             $status = $db->query("SELECT 1 FROM {$table} LIMIT 1");
             $exists = (bool) $status;
         } catch (PDOException $ex) {
             $ex->getCode();
             $exists = false;
         }
     }
     return $exists;
 }
Exemplo n.º 3
0
 /**
  * @param Param $params
  * @return object
  * @throws Exception\RuntimeException
  */
 protected function controllerInstance(Param\Node $params, Resources $context, &$class = null)
 {
     // Get the parameter values
     $name = $params->value('controller');
     if (!$name) {
         throw new Exception\RuntimeException("Routing parameter 'controller' is empty", 5);
     }
     $class = $this->className($name);
     $instance = null;
     // Create the instance
     if ($context && $context->has($class)) {
         $instance = $context->get($class);
     } elseif (class_exists($class, true)) {
         $instance = new $class();
     }
     // Initialize
     if (method_exists($instance, 'init')) {
         $instance->init($context);
     }
     return $instance;
 }
Exemplo n.º 4
0
 /**
  * @param Model $model
  * @param int $depth
  * @param string|CssClass $base
  * @return CssClass
  */
 protected function itemClass(Model $model, $depth, $base)
 {
     $class = CssClass::cast($base);
     $class->add($model->value('class'));
     return $class;
 }
Exemplo n.º 5
0
 /**
  * @param int $status
  * @param Param\Node $config
  * @return string
  */
 protected function defaultLayout($status, Param\Node $config)
 {
     if ($status && $status != 200) {
         $layout = $config->value('error_layout', 'layout/error');
     } else {
         $layout = $config->value('default_layout', 'layout/default');
     }
     return $layout;
 }