Ejemplo n.º 1
0
 /**
  * @param $extension Extension
  */
 public function __construct(Extension $extension)
 {
     if (empty($this->modelClass)) {
         $this->modelClass = ReflectionHelper::getPrefixFromControllerClass(get_called_class());
     }
     if (empty($this->base)) {
         $this->base = Inflector::pluralize(strtolower(ReflectionHelper::stripClassName($this->modelClass)));
     }
     parent::__construct($extension);
     if (class_exists($this->modelClass)) {
         $this->model = call_user_func($this->modelClass . '::init', $this->getApp());
     }
 }
Ejemplo n.º 2
0
 public function __construct($extension)
 {
     $this->extension = $extension;
     $systemCache = $this->getApp()->getCacheRepository('system');
     $cacheKey = get_called_class() . get_class() . '::__construct';
     /**
      * @var $cache \MABI\CachedControllerConstructor
      */
     if ($systemCache != null && is_object($cache = $systemCache->get($cacheKey))) {
         $this->base = $cache->base;
         foreach ($cache->middlewareFiles as $middlewareClass => $middlewareFile) {
             $this->addMiddlewareByClass($middlewareClass, $middlewareFile);
         }
         $this->documentationName = $cache->documentationName;
         return;
     }
     if (empty($this->base)) {
         $this->base = strtolower(ReflectionHelper::stripClassName(ReflectionHelper::getPrefixFromControllerClass(get_called_class())));
     }
     $rClass = new \ReflectionClass(get_called_class());
     // Load middlewares from @middleware directive
     $middlewareFiles = array();
     $middlewares = ReflectionHelper::getDocDirective($rClass->getDocComment(), 'middleware');
     foreach ($middlewares as $middlewareClass) {
         $middlewareFile = ReflectionHelper::stripClassName($middlewareClass) . '.php';
         $this->addMiddlewareByClass($middlewareClass, $middlewareFile);
         $middlewareFiles[$middlewareClass] = $middlewareFile;
     }
     if (empty($this->documentationName)) {
         $this->documentationName = ucwords(ReflectionHelper::stripClassName(ReflectionHelper::getPrefixFromControllerClass(get_called_class())));
     }
     if ($systemCache != null) {
         $systemCache->forever($cacheKey, new CachedControllerConstructor($this->base, $middlewareFiles, $this->documentationName));
     }
 }