示例#1
0
 /**
  * Construtor da classe, utilizado para realizar o bootstrap de forma automática.
  */
 public function __construct(Request $requestObject)
 {
     $this->request = $requestObject;
     $this->log = Log::getInstance();
     $this->defineRoutes();
     $this->setController();
     $this->setAction();
     $this->setUrlParams();
     self::$instance =& $this;
 }
 public function __construct()
 {
     self::$instance =& $this;
     $this->logger = Log::getInstance();
     // Classe de user agent:
     $this->userAgentParser =& UserAgent::getInstance();
     // Definindo o tipo de requisição:
     $this->setRequestMethod();
     // Definindo a página anterior do site:
     $this->setReferrer();
     // Definindo a uri (tudo que existe depois do domínio da aplicação)
     $this->setUri();
     // Setando os parâmetros dentro do array de segmentos, aí ainda temos a uri normal guardada !
     $this->explodeSegments();
     // Setando os parâmetros da url (diferente dos segmentos, retiramos o controller e a action, saca?) xD;
     $this->setUrlParams($this->segments);
     // Setando parâmetros recebido via método POST
     $this->setPostValues();
 }
 public function __construct()
 {
     self::$instance = new \PDO('dsn', 'username', 'password');
     $logger =& \Melyssa\Logger\Log::getInstance();
     $logger->debugMessage("Database class initialized!");
 }
示例#4
0
 /**
  * Application startup
  *
  * Esse método é chamado após o bootstrap ser concluído.<br>
  * Requisitamos e instanciamos o controller definido no bootstrap.<br>
  * E o router se encarrega de todo o trabalho daqui pra frente.<br>
  * Só voltamos ao método dispatch() depois que tudo estiver finalizado
  */
 public static function dispatch()
 {
     if (self::$initialized === false) {
         self::initialize();
         try {
             $router = new Router(new Request());
             $controller = $router->getController();
             $action = $router->getAction();
             $controller->initPage();
             call_user_func_array(array($controller, $action), array());
             $controller->closePage();
             Log::saveToFile(true);
             return;
         } catch (Exception $e) {
             $e->getError();
         }
     }
     exit("System already initialized, second atempt ignored !");
 }
示例#5
0
 private function setUri()
 {
     $uri = isset(filter_input(INPUT_SERVER, URI_IDENTIFIER)) ? filter_input(INPUT_GET, URI_IDENTIFIER) : '';
     $this->uri = $uri;
     Log::debug("Uri set to: " . $this->uri);
 }
示例#6
0
 private function setAction()
 {
     if ($this->request->getSegment(1) == null or $this->request->getSegment(1) == '') {
         $this->setDefaultAction();
     } else {
         $this->action = $this->request->getSegment(1);
     }
     $actionRealName = strtolower($this->action) . 'Action';
     Log::debug("Action set to: " . $this->action);
     if (!method_exists($this->class, $actionRealName)) {
         $this->method = 'show404';
     } else {
         // o método existe, setamos as configurações da action atual:
         //$this->actionConfigs = $this->controllerConfigs['callables'][$this->action];
         //Verificando se o metodo pode ser chamado diretamente pela url ou é uma função fechada:
         if (array_key_exists($this->action, $this->controllerConfigs['callables']) and in_array($this->request->getRequestMethod(), $this->controllerConfigs['callables'][$this->action]['methods'])) {
             $this->method = $actionRealName;
             $this->actionConfigs = $this->controllerConfigs['callables'][$this->action];
         } else {
             $this->method = 'show404';
         }
     }
 }
 private function setTablet()
 {
     if (is_array($this->tablets) and count($this->tablets) > 0) {
         foreach ($this->tablets as $k => $v) {
             if (preg_match('|' . preg_quote($k) . '|i', $this->agent)) {
                 $this->isTablet = true;
                 $this->tablet = $v;
                 break;
             } else {
                 $this->tablet = "Unknown tablet";
             }
         }
     } else {
         $this->tablet = "Unknown tablet";
     }
     if ($this->isTablet) {
         $log = Log::getInstance();
         $log->debugMessage("Tablet: " . $this->tablet);
     }
 }
示例#8
0
 private function setUri()
 {
     $uriString = filter_input(INPUT_GET, URI_IDENTIFIER);
     $uri = \is_null($uriString) ? '' : $uriString;
     $this->uri = $uri;
     Log::debug("Uri set to: " . $this->uri);
 }