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; } }
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); }
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()); }
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()); }
public function __construct($app) { parent::__construct($app); array_push($this->middlewareDirectories, __DIR__); }
public function setMiddlewareDirectories($middlewareDirectories) { parent::setMiddlewareDirectories(array_merge($this->middlewareDirectories, $middlewareDirectories)); }