public function __construct($directory, $extension, $namespace = NULL)
 {
     $this->extension = $extension;
     $this->directory = $directory;
     $this->namespace = empty($namespace) ? '' : $namespace;
     if (($systemCache = $this->extension->getApp()->getCacheRepository('system')) != NULL && is_array($controllerClassFiles = $systemCache->get($this->directory . '::fileList'))) {
     } else {
         // Make sure all PHP files in the directory are included
         $controllerClassFiles = DirectoryHelper::directoryToArray($this->directory, TRUE, '.php');
         if ($systemCache != NULL) {
             $systemCache->forever($this->directory . '::fileList', $controllerClassFiles);
         }
     }
     foreach ($controllerClassFiles as $controllerClassFile) {
         include_once $controllerClassFile;
         $controllerClass = ReflectionHelper::createClassName($this->namespace, basename($controllerClassFile, '.php'));
         $this->controllerClasses[] = $controllerClass;
         $controller = new $controllerClass($this->extension);
         $rclass = new \ReflectionClass($controller);
         if ($rclass->isSubclassOf('\\MABI\\ModelController')) {
             /**
              * @var $controller \MABI\ModelController
              */
             $this->overriddenModelClasses[] = $controller->getModelClass();
         }
         $this->controllers[] = $controller;
     }
 }
 /**
  * todo: docs
  *
  * @param $directory string
  * @param $extension \MABI\Extension
  * @param $namespace string|null
  */
 public function __construct($directory, $extension, $namespace = NULL)
 {
     $this->directory = $directory;
     $this->namespace = $namespace;
     $this->extension = $extension;
     if (($systemCache = $this->extension->getApp()->getCacheRepository('system')) != NULL && is_array($modelClassFiles = $systemCache->get($this->directory . '::fileList'))) {
         $this->modelClassFiles = $modelClassFiles;
     } else {
         // Make sure all PHP files in the directory are included
         $this->modelClassFiles = DirectoryHelper::directoryToArray($this->directory, TRUE, '.php');
         if ($systemCache != NULL) {
             $systemCache->forever($this->directory . '::fileList', $this->modelClassFiles);
         }
     }
     foreach ($this->modelClassFiles as $modelClassFile) {
         include_once $modelClassFile;
     }
 }
Ejemplo n.º 3
0
 function testSetModelLoaders()
 {
     $this->setUpApp();
     $newExt = new Extension($this->app);
     $this->app->setModelLoaders(array(new DirectoryModelLoader(__DIR__ . '/TestApp/TestModelDir', $this->app, 'mabiTesting')));
     $this->app->setMiddlewareDirectories(array(__DIR__ . '/../middleware'));
     $this->app->setControllerLoaders(array(new DirectoryControllerLoader('TestApp/TestControllerDir', $this->app, 'mabiTesting')));
     $newExt->setControllerLoaders(array(new DirectoryControllerLoader('TestApp/TestExtensionDir/TestControllerDir', $this->app, 'mabiTesting\\testExtension')));
     $this->app->addExtension($newExt);
     $outControllerClasses = array();
     foreach ($this->app->getControllers() as $controller) {
         $outControllerClasses[] = get_class($controller);
     }
     $this->assertContains('mabiTesting\\testExtension\\ModelCController', $outControllerClasses);
     $this->assertContains('mabiTesting\\JustAController', $outControllerClasses);
     $this->assertContains('mabiTesting\\ModelBController', $outControllerClasses);
     $this->assertCount(3, $outControllerClasses);
 }
Ejemplo n.º 4
0
 public function __construct(App $app, RESTAccess $restAccessExtension)
 {
     parent::__construct($app);
     array_push($this->middlewareDirectories, __DIR__ . '/middleware');
     $this->addExtension($restAccessExtension);
     $this->setModelLoaders(array(new DirectoryModelLoader(__DIR__ . '/models', $this, 'MABI\\Identity')));
     $this->setControllerLoaders(array(new DirectoryControllerLoader(__DIR__ . '/controllers', $this, 'MABI\\Identity')));
     $this->getExtensionModelClasses();
     $this->getApp()->getErrorResponseDictionary()->overrideErrorResponses(new Errors());
 }
Ejemplo n.º 5
0
 public function __construct(\MABI\App $app, \MABI\Identity\Identity $identityExtension, $facebookOnly = FALSE)
 {
     parent::__construct($app);
     $this->facebookOnly = $facebookOnly;
     array_push($this->middlewareDirectories, __DIR__ . '/middleware');
     $this->addExtension($identityExtension);
     $this->setModelLoaders(array(new DirectoryModelLoader(__DIR__ . '/models', $this, 'MABI\\FacebookIdentity')));
     $this->setControllerLoaders(array(new DirectoryControllerLoader(__DIR__ . '/controllers', $this, 'MABI\\FacebookIdentity')));
     $this->getExtensionModelClasses();
     foreach ($this->getControllers() as $controller) {
         $controller->setFacebookOnly($facebookOnly);
     }
     $this->getApp()->getErrorResponseDictionary()->overrideErrorResponses(new Errors());
 }
Ejemplo n.º 6
0
 public function __construct($app)
 {
     parent::__construct($app);
     array_push($this->middlewareDirectories, __DIR__);
 }
Ejemplo n.º 7
0
 public function setMiddlewareDirectories($middlewareDirectories)
 {
     parent::setMiddlewareDirectories(array_merge($this->middlewareDirectories, $middlewareDirectories));
 }