/**
  * 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;
 }
Example #7
0
 /**
  * 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;
 }