O Silex é um micro framework baseado nos componentes do Symfony. Foi desenvolvido por Fabien Potencier, o mesmo criador do Symfony.
O Silex foi concebido para a criação de aplicações pequenas com foco na agilidade, extensibilidade e para ser facilmente testável. Ele provê um sistema de rotas muito poderoso, e se propõe a resolvê-las através dos Services e Providers, conceitos que veremos mais à frente. Você perceberá que ele é facilmente estendido e suas funcionalidades recebem uma vantagem através dessas integrações.
Instalação
Para instalar o Silex em nossos projetos é muito simples: precisamos apenas do Composer para gerenciar nossas dependências.
Mas afinal, o que é o Composer? O Composer é um gerenciador de dependências para aplicações PHP, baseado nas GEMs do Ruby e no NPM do Node.JS. Com o Composer você pode facilmente gerenciar a instalação de pacotes de terceiros, bem como preparar o seu pacote para que ele fique disponível para os desenvolvedores que utilizam essa ferramenta. Tudo que precisaremos é de um arquivo composer.json na raiz de nosso projeto. Utilizaremos api-events
como nome da nossa pasta.
Na raiz dessa pasta crie um arquivo composer.json com o seguinte conteúdo:
O composer.json é o arquivo que o Composer lê para poder realizar as tarefas de download e instalação dos pacotes especificados.
Agora vamos instalar o Composer em nosso projeto. O Composer pode ser utilizado de duas maneiras: de forma local e de forma global. Abordarei aqui a forma local. Para instalá-lo em sistemas Unix, você precisará da lib curl disponível. Se você utiliza o Windows, baixe o executável aqui. O seguinte comando, executado via terminal (e na raiz de nosso projeto), deve instalar o Composer para você:
O comando fará o download e irá compilar o composer.phar e arquivos .phar
, que são extensões executáveis do PHP. Agora que temos o arquivo de configuração e o Composer em nosso projeto, podemos instalar nossas dependências, ou seja, o Silex propriamente dito. É muito simples realizar a instalação dos pacotes: na raiz do seu projeto, execute o seguinte comando:
php composer.phar install
É preciso que você tenha o php-cli disponível em seu terminal. O comando acima verificará o arquivo composer.json
e logo em seguida fará o download do Silex, conforme requerido no arquivo .json
da versão 1.2. Após tudo concluído, você verá uma imagem semelhante a essa:
O Composer instalou o Silex bem como as dependências utilizadas pelo mesmo dentro da pasta vendor
do nosso projeto. Além do download, ele também mapeia os namespaces dos pacotes e cria um autoload. Através deste autoload teremos acesso a todos os pacotes baixados até o momento.
Silex: Hello World!
Agora que nossas dependências foram baixadas e instaladas, podemos começar a utilizar nosso micro framework: crie um arquivo index.php
na raiz da sua pasta e adicione a abertura do código PHP utilizando o seguinte comando:
echo " index.php
Abaixo segue o código do index na íntegra:
Na linha 2 informo ao meu script para utilizar o Silex com o namespace SilexApplication
. Para ter acesso aos namespaces dos pacotes baixados (como comentado anteriormente sobre o autoload) precisamos adicionar o mesmo em nosso index. Para isso utilizamos o require
na linha 3. Na linha 4 simplesmente instanciamos nosso micro framework. O já citado poderoso sistema de rotas pode ser visto das linhas 5 a 6, onde utilizamos o método get
. O método get
manipula as requisições GET vindas do client e no nosso caso fazemos o seguinte:
Quando o cliente realizar uma requisição do tipo GET em nossa rota raiz, referenciada através da /
, nós executaremos o que for passado dentro do callback, o segundo parâmetro do método get
do SilexApplication
. Como queremos apenas realizar (imprimir) um “Hello World”, vamos retornar essa string em nosso callback para a rota raiz.
E por fim, para que as respostas emitidas pelo Silex sejam enviadas ao browser ou a quem as solicitou, utilizamos o método run
em nossa linha 8. Ao rodar nosso app no browser, temos a seguinte resposta:
Hello World
Podemos ver o quão simples é utilizar esse micro framework através dos processos vistos até aqui. Para os próximos artigos, vamos nos aprofundar mais neste micro framework e ver como utilizá-lo melhor em casos reais.
Por hora, pratique os conhecimentos aqui passados. Nos vemos em breve!