adamo / skeleton-basic-work
Estrutura básica para SLIM PHP MCV
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 2
Open Issues: 0
Type:project
Requires
- phpmailer/phpmailer: ^6.8
- slim/slim: 2.6.3
- twig/intl-extra: ^3.6
- twig/twig: ^3.0
- vlucas/phpdotenv: ^5.4@dev
README
Trata-se de uma estrutura simples para desenvovilmento aplicações utilizando MVC com SLIM, TWIG.
Para facilitar e padronizar as estilizações do frontend é utilizado webpack para configuração de transpiladores SASS para css e Babel para para javascript e bootstrap para HTML
Instalção
composer create-project quaestum/quaestum
npm install
Configuração
Incluir configurações para conexões com serviços como Base de Dados e/ou SMTP para envio de e-mails é simples. Utilize o arquivo .env.
O arquivo já vem com as variáveis de conexão com banco de dados já definidas, basta incluir os valores. Utilize o .env.exemplo.
Rotas
No diretório de rota, é possivel colocar quantos arquivos necessário, assim como pastas para separar versões de apis.
Exemplo: Dentro da pasta routes, incluir api/v1. Dentro desta pasta pode ser criado quantos arquivos de rota necessário, além de pastas para melhor organizar o projeto.
arquivo usuario.php
<?php use App\Controllers\Home; $app->group('/api', function() { $app->group('/v1', function() { $app->group('/usuario', function() { $app->get('/', $authi, function() { $home = new Home(); $home->index(); }); }); }); })
Dentro da pasta app crie os controllers e brinque o quanto necessário.
Para criar um controller é bem simples: Crie um arquivo de controller dentro da pasta App/Controllers. Exepmlo da criação do de Home.php:
<?php namespace App\Controllers; /** * Utilize a classe Controller principal para extender a classe Home * Essa seper classe oferece o atributo app que carrega a instancia do Slim. * Assim conseguirá recuperar **requests**, utilizar **responses** ou o render do Twig que é instanciado no bootstrap da aplicação */ use App\Controllers\Controller; class Home extends Controller { public function index() { $this->app->render('BemVindo'); } }