Skip to content
Carlos Eduardo edited this page Jun 20, 2016 · 6 revisions

Configuração

Cada aplicação deve ficar em uma subpasta no diretório /root/app/.

Dentro da pasta da sua aplicação, crie o arquivo config.php e realize as configurações necessárias para o banco de dados e servidor de e-mails, rotas e etc.

<?php

use \Core\Config;

Config::Set([
  'url'          => 'http://admin.contoso.com/',      // URL da Aplicação
  'database'     => [                                 // Configurações do Banco de Dados
      'driver'   => 'mysql',                          // - Driver (apenas mysql disponível)
      'port'    => 3306,                              // - Porta de Conexão (3306) é padrão do MySQL
      'host'    => 'localhost',                       // - Endereço do Banco (DNS ou IP)
      'schema'  => 'test'                             // - Nome do Banco de Dados
      'user'    => 'root',                            // - Usuário
      'pass'    => '',                                // - Senha
      'charset' => 'utf8'                             // - Codificação de Caracteres (opcional, utf8 padrão)
  ],
  'email' => [                                        // Configurações de E-mail para uso da classe: SendMail extends PHPMailer()
      'debug'        => FALSE,                        // - Modo Debug
      'smtp'         => TRUE,                         // - Tipo SMTP? (TRUE|FALSE)
      'auth'         => TRUE,                         // - Autenticar SMTP? (TRUE|FALSE)
      'secure'       => 'ssl',                        // - Criptografia (SSL|TLS)
      'host'         => 'smtp.contoso.com',           // - Endereço do SMTP
      'port'         => 465,                          // - Porta de Conexão
      'user'         => '[email protected]',        // - Usuário de autenticação
      'pass'         => 'drowssap',                   // - Senha de autenticação
      'from'         => [                             // - From padrão (opcional)
         'email'=>'[email protected]',              //   > E-mail
         'name'=>'Contoso :: No Reply'                //   > Nome (opcional)
      ]
 ],
  'authentication' => [                               // Configuração de Autenticação
      'class' => '\\Authentication\\Authentication',  // - Classe de Autenticação
      'method' => 'validateAccess',                   // - Método estático de chamada
      'notcheckon' => [                               // - Não validar autenticação nas situações
          'auth'  => [                                //   > Controller: Auth
            'login',                                  //     - Action login
            'register'                                //     - Action register
            'recoverpass'                             //     - Action recoverpass
         ],
         'error' => '*'                               //   > Controller: Error | Action: Qualquer Action
      ]
  ]
]);

Se setada a propriedade authentication, ela será executada todas as vezes antes de executar a Action, no __construct do Controller. O método method deve ser estático. Pois será executado da seguinte forma:

$app->authentication->class::{$app->authentication->method}()

Caso a classe informada possua um método estático chamado setController, a instância do Controller atual será passada para ele antes de executar o método de validação.

if (method_exists($auth, 'setController')) {
    $app->authentication->class::setController($this);
}

A propriedade notcheckon é um array com todos os Controllers o qual devem ser ignorados a execução do authentication, ele pode receber um array com todos os métodos a serem ignorados, ou o coringa *, para que qualquer método desse Controller seja ignorado a verificação.

Ao rodar a aplicação, passe como parâmetro o nome da pasta que está a aplicação a ser executada. Caso a aplicação não esteja na pasta padrão /root/app/, também pode ser passado o caminho;

E no arquivo /root/public_html/index.php defina nas primeiras linhas do arquivo a constante do aplicativo que será executado:

<?php
    // Exemplo do arquivo /root/public_html/index.php

    // Carrega o loader
   require_once __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'base'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'loader.php';

    
   // Passe como parâmetro o nome da pasta da aplicação
   \Core\Application::RUN('example');


   // Ou se ela não estiver na pasta padrão /root/app/, passe o caminho
   \Core\Application::RUN(dirname(__DIR__).'/meuapp');