Suitup PHP Framework - Old version

Esta é a documentação para a versão antiga do Suitup, procure utilizar a versão mais nova...

Instalação Composer

Caution

Avoid to install this version

composer require braghim-sistemas/suitup-php ^1

Estrutura do projeto

Esta é a estrutura recomendada do projeto, lembre-se que dentro da pasta de cada módulo temos, os Controllers, views e Models que devem seguir esta estrutura, a estrutura de Form é opcional. Você pode colocar a pasta de arquivos css, js, etc, onde julgar melhor.

Por padrão o primeiro módulo é sempre o ModuleDefault, este nunca deve deixar de existir.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    assets
    |  example.jpg
    config
    |  database.config.php
    modules
    |  ModuleDefault
    |  |  Controllers
    |  |  |  IndexController.php
    |  |  |  ErrorController.php
    |  |  Form
    |  |  |  Index
    |  |  |  |  Index.php
    |  |  Model
    |  |  |  Gateway
    |  |  |  |  User.php
    |  |  |  UserBusiness.php
    |  |  views
    |  |  |  index
    |  |  |  |  index.phtml
    |  |  |  error
    |  |  |  |  not-found.phtml
    |  |  |  |  error.phtml
    |  ModuleAdmin
    .htaccess
    composer.json
    composer.phar
    index.php

.htaccess

Este framework funciona com o mod rewrite do apache habilitado.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
RewriteEngine on

# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The 
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to 
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size 
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]


index.php

Este é o arquivo onde o sistema vai iniciar sempre, independente de qual página o usuário acessa.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
session_start();

// horario de sao paulo
date_default_timezone_set('America/Sao_Paulo');

// Constantes de configuracao definidas no VirtualHost (já chegamos lá).
define('DEVELOPMENT', (bool) getenv("DEVELOPMENT"));
define('SHOW_ERRORS', (bool) getenv("SHOW_ERRORS"));
if (SHOW_ERRORS) {
    error_reporting(E_ALL);
    ini_set('display_errors', true);
}

// Diretorio raiz
// Tudo é relativo à raiz do sistema
chdir(__DIR__);

// Funcoes simples que você pode querer implementar (opcional)
// include_once './functions.php';

// Setup autoloading composer
if (file_exists('vendor/autoload.php')) {
    $loader = include 'vendor/autoload.php';

    // Você pode adicionar suas bibliotecas aqui, se quiser.
    // $loader->add('System', 'library/.');
} else {
    exit("Dependências do projeto não encontradas, execute o comando 'php composer.phar install'");
}

// Para rodar o framework bastam essas duas linhas.
$mvc = new SuitUpStart('caminho/relativo/para/os/modulos/');

// Caso queira monitorar as consultas SQL
// Cuidado para não deixar habilitado em ambiente de produção
$mvc->setSqlMonitor(DEVELOPMENT);

$mvc->run();

Virtual Host

Recomendamos que você crie um Virtual Host para rodar a aplicação, simulando assim um ambiente mais próximo do que ficará online

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<VirtualHost *:80>
        ServerAdmin seumail@seuhost.com.br

        ServerName seuprojeto.dev
        ServerAlias seuprojeto.dev

        DocumentRoot /var/www/seuProjeto
        <Directory /var/www/seuProjeto>
                Options Indexes FollowSymLinks
                AllowOverride All 
                Order allow,deny
                Allow from all 
        </Directory>

        ErrorLog /var/www/log/seuProjeto/error.log
        CustomLog /var/www/log/seuProjeto/access.log combined

        LogLevel warn

        # Variaveis de ambiente
        # False quando estiver online.
        SetEnv DEVELOPMENT true
        SetEnv SHOW_ERRORS true
</VirtualHost>

Isto é tudo para fazer funcionar. Bom trabalho, muito obrigado.