Skip to content
Carlos Eduardo edited this page Mar 16, 2016 · 6 revisions

Configuração

Localize o arquivo /root/app/appsconfig.php e realize as configurações necessárias para o banco de dados e servidor de e-mails.

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

Localize o arquivo /root/app/appsconfig.php e configure suas aplicações, de acordo com o exemplo:

<?php
return objectify(Array(
    'contoso' => Array(
        'url'          => 'http://contoso.com/',                // (obrigatório)
        'view'         => APPS . 'example' . DS . 'view' . DS,  // (optional)
        'database'     => Array(                                // (optional)
            'driver'  => 'mysql',
            'port'   => 3306,
            'host'   => 'localhost',
            'user'   => 'DataBaseUser',
            'pass'   => 'DataBasePassword',
            'schema' => 'DataBaseName'
        )
    ),
    'contoso-admin' => Array(
        'url'          => 'http://admin.contoso.com/',
        'database'     => Array(
            'drive'  => 'mysql',
            'port'   => 3306,
            'host'   => 'localhost',
            'user'   => 'databaseadmin',
            'pass'   => 'databaseadminpassword'
        ),
        'authentication' => Array(                                 // (opcional)
            'class' => '\\Authentication\\Authentication',
            'method' => 'validateAccess',
            'notcheckon' => Array(
                'auth'  => ['login', 'recoverpass']
                'error' => '*'
            )
        )
    )
));

A estrutura de configuração é simples, a chave do array é o nome da aplicação, e deve ser o mesmo nome da pasta a qual ela se refere na pasta de aplicativos /root/app/<nome do aplicativo>. As demais propriedades são auto explicativas.

A propriedade authentication é executada todas as vezes que 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 ou defina a constant APP o nome da aplicação que deve ser executada: 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';

    // Define qual aplicação será executada pela constante APP.
    define('APP', 'example');

   // Ou passe como parâmetro na execução da aplicação
   \Core\Application::RUN('example');