O Simples é um projeto que reúne um conjunto de pacotes para trabalhar com PHP de forma rápida e minimalista. Menos é mais!
Para começar a usar o simples você pode usar o comando:
$ composer create-project phpzm/simples
ou fazer uma cópia da branch master do repositório
$ git clone https://github.com/phpzm/simples.git <dir>
$ cd <dir>
$ rm .git
$ composer install
Neste momento você já tem baixada uma arquiretura básica e é preciso configurar alguns detalhes para sair usando feliz da vida recursos básicos para um desenvolver um site ou sistema em PHP.
As duas configurações que são disponibilizadas como base são direcionadas para a mesma url: http://localhost:8080
Cria uma cópia do arquivo de exemplo que é disponibilizado junto com o projeto
$ cp docker-compose.yml.sample docker-compose.yml
$ docker-compose up
Para utilizar o o servidor de desenvolvimento que vem junto com o PHP utilize os comandos abaixo
$ composer run serve --timeout=0
Se deu tudo certo, ao acessar a url http://localhost:8080
você já verá nossa página padrão de apresentação
A configuração de qual a primeira rota (ou quais as primeiras rotas) será chamada fica por padrão dentro de app/configs/route.php
.
As configurações de acesso aos recursos da aplicação podem ser feitas nos arquivos de rotas. Os comandos podem ser escritos diretamente direto no corpo do arquivo (onde uma variável $router estará disponível por questões de escopo) ou usando o retorno de closures que recebem o $router como parâmetro.
Rotas simples
return function($router) {
$router->on('GET', '/', function() {
return 'Hello World!';
});
}
Rotas dinâmicas
return function($router) {
$router->get('/:controller/:method', function($controller, $method) {
return 'Hello World!';
});
}
Grupos de Rotas
return function($router) {
// lista com arquivos de rota
$router->group('GET', '/site', ['more/files/routes.php', 'more/files/site.php']);
// pasta que contém arquivos de rotas
$router->group('*', '/api', 'api/routes');
}
Rotas com Interação com Controllers
return function($router) {
$router->post('/client/save', '\Namespace\ClientController@save');
$router->resource('client', '\Namespace\ClientController');
}
Um $router->resource
vai criar:
Verb | Path | Action | Route Name |
---|---|---|---|
GET |
/route
|
index | route.index |
GET |
/route/create
|
create | route.create |
GET |
/route/{id}
|
show | route.show |
GET |
/route/{id}/edit
|
edit | route.edit |
POST |
/route
|
store | route.store |
PUT/PATCH |
/route/{id}
|
update | route.update |
DELETE |
/route/{id}
|
destroy | route.destroy |