/** * Construtor da classe * * @param string $uri URI para testar a rota */ public function __construct($uri) { $this->config = Services::getInstance()->getService("config"); $this->routes = $this->config->routes; // Percorre as rotas configuradas foreach ($this->getRoutes() as $route_name => $route) { $pattern = $route['pattern']; // Testa o pattern para ver se a URI pertence à alguma rota $test = $this->testExpression($pattern, $uri); if ($test) { break; } } // Se nao tem roda, utiliza a rota padrão if (!$test) { $route_name = "default"; } // Tenta recuperar os dados da rota try { $route = $this->getRoutes()->{$route_name}; } catch (Exception $e) { // @todo Adicionar tradução throw new Exception("Rota default não encontrada"); } // Verifica os parametros encontrados foreach ($route->defaults as $param => $default) { if (!$this->params[$param]) { $this->params[$param] = $default; } } }
/** * Inicializa a aplicação */ public function __construct() { // @todo Verificar qual o tipo de arquivo para enviar ao minify ou ao image cache // Inicia o autoloader spl_autoload_register(array($this, "__autoloader")); // Inicia o uso de sessões session_start(); // Cria a configuração $configFile = APPLICATION_PATH . "/config/production.php"; $config = Config::createInstance($configFile); // Verifica se está em outro ambiente if (APPLICATION_ENV != "production") { $envConfig = APPLICATION_PATH . "/config/" . APPLICATION_ENV . ".php"; if (file_exists($envConfig)) { $config->mergeConfig($envConfig); } } // Adiciona a configuração ao serviços Services::getInstance()->addService("config", $config); // Cria o request e adiciona ao service manager $request = new Request(); Services::getInstance()->addService("request", $request); $request->parseParams(); // Cria o front controller $front = new Front(); Services::getInstance()->addService("front", $front); $front->run(); }
/** * Executa o helper * * @return string */ public function call($type) { $output = ""; // Recupera o request $request = Services::getInstance()->getService("request"); // Recupera o config $this->config = Services::getInstance()->getService("config"); $baseurl = $this->config->application->baseurl; // Recupera o path do mvc $module = $request->getParam("module"); $controller = $request->getParam("controller"); $action = $request->getParam("action"); // Verifica se é javascript if ($type == "javascript") { // Cria o caminho local $path = "public/js/" . $controller . "/" . $action . ".js"; $local_path = APPLICATION_PATH . "/../public_html/" . $path; if (file_exists($local_path)) { $output = "<script type=\"text/javascript\" src=\"" . $baseurl . $path . "\"></script>"; } } elseif ($type == "css") { // Cria o caminho local $path = "public/css/" . $controller . "/" . $action . ".css"; $local_path = APPLICATION_PATH . "/../public_html/" . $path; if (file_exists($local_path)) { $output = "<link rel=\"stylesheet\" href=\"" . $baseurl . $path . "\">"; } } return $output; }
/** * Construtor da classe */ public function __construct() { // Recupera o request $this->_request = Services::getInstance()->getService("request"); // Instancia o view e configura o controller $view = new View(); $this->setView($view); }
/** * Construtor da classe */ public function __construct() { // Armazena o request $this->setRequest(Services::getInstance()->getService("request")); // Instancia o view $this->_view = new \General\Mvc\View(); // Executa o hook de inicialização $this->configure(); }
/** * Singleton */ public static function getInstance() { if (!self::$instance) { // Recupera os dados do banco de dados $config = Services::getInstance()->getService("config"); $params = $config->database; // Cria a instancia self::$instance = self::connect($params); } return self::$instance; }
/** * Executa o helper * * @return string */ public function call($params, $route_name) { // Recupera as rotas e configurações $this->config = Services::getInstance()->getService("config"); $routes = $this->config->routes; $baseurl = $this->config->application->baseurl; // Remove a ultima barra caso houver if ($baseurl[strlen($baseurl) - 1] == "/") { $baseurl = substr($baseurl, 0, strlen($baseurl) - 1); } // Tenta recuperar os dados da rota try { $route = $routes->{$route_name}; } catch (Exception $e) { // @todo Adicionar tradução throw new Exception("Rota default não encontrada"); } // Armazena o pattern $uri = $route->pattern; // Faz a busca pelas chaves { e } no pattern preg_match_all("/\\{(\\/)?(\\w+)\\}/i", $uri, $param_names); foreach ($param_names[0] as $index => $pattern_name) { $param_name = substr($pattern_name, 1, strlen($pattern_name) - 2); // Verifica se possui parametro if (isset($params[$param_name])) { $param_value = $params[$param_name]; } else { try { $param_value = $route->defaults->{$param_name}; } catch (Exception $e) { // @todo Adicionar tradução throw new Exception("Parametro {$param_name} obrigatório"); } } $uri = str_replace($pattern_name, $param_value, $uri); } // Retorna o uri return $baseurl . $uri; }
/** * Seta o caminho base * * @param string $basepath Caminho base */ public function setBasePath($basepath = NULL) { if ($basepath === NULL) { $basepath = Services::getInstance()->getService("config")->application->baseurl; } // Verifica se possui barra no final do baseurl if ($basepath[strlen($basepath) - 1] == "/") { $basepath = substr($basepath, 0, strlen($basepath) - 1); } $this->_basepath = $basepath; }