protected function _createFromReflection($reflection) { $this->_name = pathinfo($reflection->getFileName(), PATHINFO_FILENAME); parent::_createFromReflection($reflection); foreach ($reflection->getMethods() as $method) { if ($method->getDeclaringClass()->getName() == $reflection->getName()) { $this->addMethod(ControllerMethod::create($this, $method)); } } $layoutPath = \Path::instance()->evaluate(':' . $this->project()->name() . ".apps.layout.+{$this->name()}.@layout.php"); //Application Layout $paramsPath = \Path::instance()->evaluate(':' . $this->project()->name() . ".apps.layout.+{$this->name()}.@params.php"); //Application Params $viewPath = \Path::instance()->evaluate(':' . $this->project()->name() . ".apps.view.+{$this->name()}.@view.php"); //Application View if (file_exists($layoutPath)) { $this->_layout = Layout::create($layoutPath); } if (file_exists($paramsPath)) { $this->_params = Params::create($paramsPath); } if (file_exists($viewPath)) { $this->_view = ControllerAppView::create($this); } }
private function _createFromReflection($projectName) { $this->_name = $projectName; $this->_dir = \Fstab::instance()->projectDirectory($projectName); $controllerBasePath = rtrim(\Path::instance()->evaluate(":{$this->_name}.apps.controller"), "/\\"); foreach (glob($controllerBasePath . "/*.php") as $filePath) { $fileName = pathinfo($filePath, PATHINFO_FILENAME); $controllerClassName = $fileName . 'Controller'; if (!class_exists($controllerClassName)) { require $filePath; } if (class_exists($controllerClassName)) { $reflection = new \ReflectionClass($controllerClassName); $this->_controllers[] = AppController::create($this, $reflection); } } $spiritBasePath = rtrim(\Path::instance()->evaluate(":{$this->_name}.spiritPath"), "/\\"); foreach (glob($spiritBasePath . "/*", GLOB_ONLYDIR) as $dirName) { $spiritName = pathinfo($dirName, PATHINFO_FILENAME); $spiritFileName = rtrim($dirName, "/\\") . '/abstractor.php'; $spiritAbstractorClassName = $spiritName . 'Abstractor'; if (!class_exists($spiritAbstractorClassName) && file_exists($spiritFileName)) { require $spiritFileName; } if (class_exists($spiritAbstractorClassName)) { $reflection = new \ReflectionClass($spiritAbstractorClassName); $this->_spirits[] = SpiritController::create($this, $reflection); } } $commonViewPath = rtrim(\Path::instance()->evaluate(":{$this->_name}.common.@view.php"), "/\\"); $commonLayoutPath = rtrim(\Path::instance()->evaluate(":{$this->_name}.common.layout.@layout.php"), "/\\"); $commonParamsPath = rtrim(\Path::instance()->evaluate(":{$this->_name}.common.layout.@params.php"), "/\\"); if (file_exists($commonViewPath)) { $this->_view = CommonView::create($commonViewPath); } if (file_exists($commonLayoutPath)) { $this->_layout = Layout::create($commonLayoutPath); } if (file_exists($commonParamsPath)) { $this->_params = Params::create($commonParamsPath); } }
} catch (Exception $e) { Input::flash(); Notify::error($e->getMessage()); return Response::redirect('account'); } return Response::redirect('complete'); })); /* Complete */ Route::get('complete', function () { // check we have a database if (!Session::get('install')) { Notify::error('Please select your language'); return Response::redirect('start'); } $settings = Session::get('install'); $vars['site_uri'] = $settings['metadata']['site_path']; $vars['admin_uri'] = rtrim($settings['metadata']['site_path'], '/') . '/index.php/admin/login'; $vars['htaccess'] = Session::get('htaccess'); // scrub session now we are done Session::erase('install'); file_put_contents(APP . 'install.lock', time()); return Layout::create('complete', $vars); }); /* 404 catch all */ Route::any(':all', function () { return Response::error(404); });
*/ $GLOBALS['errors'] = array(); function check($message, $action) { if (!$action()) { $GLOBALS['errors'][] = $message; } } check('<code>content</code> directory needs to be writable so we can upload your images and files.', function () { return is_writable(PATH . 'content'); }); check('<code>anchor/config</code> directory needs to be temporarily writable so we can create your application and database configuration files.', function () { return is_writable(PATH . 'anchor/config'); }); check('Anchor requires the php module <code>pdo_mysql</code> to be installed.', function () { return extension_loaded('PDO') and extension_loaded('pdo_mysql'); }); check('Anchor requires the php module <code>GD</code> to be installed.', function () { return extension_loaded('gd'); }); if (count($GLOBALS['errors'])) { $vars['errors'] = $GLOBALS['errors']; echo Layout::create('halt', $vars)->render(); exit(0); } /** * Import defined routes */ require APP . 'routes' . EXT;