Você está na página 1de 45

TRABALHANDO DE FORMA

PROFISSIONAL COM SILEX


QUEM SOU EU ?
Criador e mantenedor:
https://www.facebook.com/groups/silexbrasil
https://www.facebook.com/groups/laravelsp
https://www.facebook.com/groups/phingbrasil
https://www.facebook.com/groups/sonicpibrasil
https://www.facebook.com/groups/doctrinebrasil

Instrutor:
4 Linux
Webschool.io
QUEM SOU EU ?

https://github.com/michaeldouglas

https://twitter.com/mdba_araujo

https://facebook.com/mdba.araujo
QUEM SOU EU ?

Livro: Zend Certified Engineer - Descomplicando a


certificao PHP
QUEM SOU EU ?

Laravel PagSeguro https://github.


com/michaeldouglas/laravel-pagseguro
LARAVEL CONFERENCE BRASIL

Laravel Conference Brasil https:


//laraconfbrasil.com.br

Data do evento: Dia 8 de outubro


INTRODUO.
Para iniciar sobre o que um Microframework usaremos como
exemplo o Bootstrap - (Framework HTML, CSS e JavaScript)

Muitos componentes, nem todos sero usados.


Por exemplo: Um pequeno formulrio de contato ser que
Preciso usar o Bootstrap ?
Quando utilizar ? - E quando no ?
At mesmo nesse mundo HTML e CSS existem
Microframeworks: http://fox-css.com
FULL STACK COMO TUDO COMEOU ?
Nos primrdios veio Ruby On Rails outras linguagens como
o PHP acham interessante o MVC !
Nasce ento os Frameworks MVC PHP: Zend Framework,
Symfony e etc. - Que cuidam dos seus problemas do inicio ao
fim.
Ser que a todo momento devo utilizar um Full Stack ?
Vale a pena ler esse post feito pelo Elton Minetto referente a
esse assunto de Full Stack: http://goo.gl/ERBbEH
O QUE UM MICROFRAMEWORK?
" Microframework um termo utilizado para se referir a um
framework de aplicao minimalistas - Wikipdia "
Ou seja, nem sempre eu preciso de um canho para matar
uma mosca, por exemplo: Symfony e Zend Framework.
Ento s devo utilizar Microframework para pequenas
aplicaes? - No, caso voc tenha uma aplicao bem
organizada um Microframework pode ajudar!
Ou at mesmo para a criao de uma API, por que utilizar
um Full Stack se voc tem os Microframeworks!
POR QUE DEVO UTILIZAR?
Legal, mas se um Microframewok um Framework
simplificado que resolve pequenos problemas ser que tem
uma estrutura de cdigos suficiente para tornar mais gil o
meu desenvolvimento? - Sim, mas o que?
Primeiramente que um Microframework mais simples
de utilizar.
Insero de componentes conforme necessrio, muitos
componentes do Full Stack provavelmente voc nunca
tenha utilizado!
POR QUE DEVO UTILIZAR ?
Com o passar do tempo os frameworks Full Stack foram
ficando cade vez maiores e isso no ruim !
Desvantagem deste crescimento que eles se tornaram
complicados para desenvolvimento de projetos mais simples
ou at mesmo para entendimento de suas estruturas.
Aprovao da PSR-7 - Que a padronizao dos
componentes de Request e Responses. A ttulo de curiosidade
vale a pena voc dar uma olhada na proposta do Zend
Framework 3 referente a seus componentes como o MVC.
POR QUE DEVO UTILIZAR ?
O mais interessante da utilizao dos Microframeworks a
liberdade de componetes!
POR QUE SILEX ?
Silex baseado em um dos mais popalares Frameworks PHP
que o Symfony. - Para muitos aqui uma verdadeira alegria,
pois considerado um dos melhores Frameworks PHP ou at
mesmo o melhor!
Silex baseado nos componentes do Symfony como por
exemplo: HttpKernel (Corao do Symfony 2).
Desenvolvido por Fabien Potencier o mesmo criador do
Symfony.
POR QUE SILEX ?
Silex foi criado para aplicaes pequenas com foco em
agilidade que seja extensvel e fcil de testar !
Utiliza o Pimple para controle de injeo de dependncia
tornando ainda mais fcil a utilizao de componentes
terceiros.
A instalao muito simples com apenas um arquivo
composer.json e index.php o Silex j pode ser utilizado !
POR QUE LUMEN ?
Lumen tambm um Microframework derivado do Laravel,
criado por Taylor Otwell.
Muitos utilizam Laravel e no conhecem Lumen.
Criado por Taylor quando estava fazendo micro servios
para o projeto Envoyer. (Envoyer um implementador
zero-down-time para projetos PHP & Laravel).
Segundo o Benchmarking feito por Taylor o Lumen mais
rpido.
SLIM ELE TAMBM EXISTE !
Slim tambm um microframework criado por: Josh
Lockhart, Andrew Smith e Rob Allen.
Fcil de instalar e de utilzar.
O futuro parece ser dos Microframeworks?
Quais opes temos alm do Silex, Lumen e Slim ?
MAIS OPES QUAIS SO ?
SILEX x LUMEN
Por que Silex x Lumen ?
Google Trend
interesse: Symfony,
Laravel e Zend
Framework.

Symfony e Laravel
mais populares e j
possuem seus
Microframeworks.
SILEX x LUMEN
Popularidade GitHub: Laravel, Symfony e Zend Framework
SILEX x LUMEN
Desvantagem Lumen:
Por ser baseado no Laravel existe um pouco de
dependncia do Framework e conhecimento do mesmo,
se voc no gosta do Laravel no vale a pena;
O tamanho de estrutura do Lumen assusta para quem
deseja algo o mais simples possvel;
Muitos no concordam que o Lumen to rpido assim
como vendido na documentao;
A seguir veremos o comparativo do Lumen, Silex e Slim.
SILEX x LUMEN
Imagem do Benchmark de requisies que segundo o Taylor,
Lumen em comparao ao Silex e Slim mais rpido:

Vdeo do Benchmark feito por Taylor Otwell:


https://youtu.be/WqRpa_5m7h4
SILEX x LUMEN
Vantagem Lumen:
A documentao excelente se voc seguir consegue
utilizar sem dor de cabea;
Segundo Taylor Otwell Lumen mais rpido que Silex e
Slim;
Por se basear no Laravel, o Lumen to agradvel de
utilizar como seu irmo Laravel;
SILEX x LUMEN
Vantagem Lumen:
Preparado para migrar para um projeto Laravel
Framework;
A sintaxe do Lumen de fcil utilizao e compreenso.
SILEX x LUMEN
Desvantagem Silex:
Desvantagem? - Sinceramente eu ainda no encontrei!
SILEX x LUMEN
Vantagem Silex:
Ele um dos Microframeworks PHP mais rpido;
Silex muito fcil de implementar e sair usando;
tima documentao;
Utiliza componentes do seu irmo Symfony, modular,
ou seja, use somente o que voc precisa;
tima escolha para criao de sistemas grandes de forma
profissional e sem muita dor de cabea.
INSTALANDO O SILEX
O que voc precisa para iniciar :
Criar a pasta do projeto.
Criar ou editar o arquivo composer.json

Caso j tenha o composer, execute: composer install.


ESTRUTURA INICIAL DO SILEX
Aps a execuo da instalao das dependncias, a estrutura
ficar da seguinte maneira:

| -- PalestraSilex Repare como pouca


| -- vendor dependncia baixada
para o Silex
| -- composer.json funcionar!
| -- composer.lock
ESTRUTURA INICIAL DO SILEX
S isso ? - Sim, para iniciar exatamente simples como voc
pode reparar e sem a necessidade de muitos tutoriais e etc !
INICIANDO COM O SILEX
O primeiro arquivo necessrio para comear sua vida com o
Silex. , por exemplo: criar um arquivo index.php, criar a
instncia de Application e chamar o mtodo: run().
TRABALHANDO COM ROTAS NO SILEX
Para realizar seu primeiro teste de rota em Silex.
Poderamos ento chamar um servidor PHP simples para
teste, desta maneira:
php -S localhost:8000.
Lembrando que voc precisa estar na raiz do projeto.
TRABALHANDO COM ROTAS NO SILEX
Para teste criaremos duas requisies que utilizam uma lista
de carros e modelos. Voc ver o quanto simples utilizar o
Silex para criar a rota e retornar os dados de marca e modelo.
Para nosso exemplo ser utilizado o mtodo get.
Alm do get voc pode utilizar: put, delete, post e patch .
$app->put()
$app->delete()
$app->patch()
$app->post()
TRABALHANDO COM ROTAS NO SILEX
SILEX E O TWIG
O Twig uma linguagem de template criada e mantida pela
SensioLabs. Twig j vem embarcado por padro no Symfony
aqui no Silex voc precisa adicionar o Twig.
Para inserir o Twig voc precisa executar o comando:
composer require twig/twig
Alm de instalar o Twig interessante voc instalar o
componente: Synfony Twig-Bridge que serve para realizar
uma integrao entre componentes do Symfony e do Twig.
SILEX E O TWIG
Para inserir o componente execute o comando: composer require
symfony/twig-bridge
SILEX E O TWIG
Apos a execuo dos comandos voc j pode utilizar sem
nenhum problema !
Perceba que seu arquivo composer.json alterado veja:
SILEX E O TWIG
Para inciar com Twig
iremos criar a pasta
views. Registrar o
TwigServiceProvider,
passar para a view
(marcas.twig) os
dados de marcas. E
ento exibir os dados
no padro Json.
SILEX E O TWIG
Estrutura de pasta views e o template marcas.twig que agora
responsvel por exibir o Json de dados !
A estrutura marcas.twig s recebe o seguinte cdigo:
{{ marcas|json_encode() }}
SILEX E DOCTRINE
Basicamente Doctrine um Framework de Mapeamento
Objeto-Relacional e dispensa muitas apresentaes pois
muitos j o conhecerem.
Em Silex ns o utilizaremos com DoctrineServiceProvider
que fornece uma integrao entre Doctrine DBAL e Silex.
Para utilizar em Silex voc tambm precisa inserir o
componente doctrine dbal da seguinte maneira:
composer require "doctrine/dbal:~2.2"
SILEX E DOCTRINE
Para utilizar um banco de dados
em Silex voc registra o
componente e configura os
dados de conexo. E sem muita
dificuldade pode utilizar uma
consulta em seu banco de dados!
Para obter os dados foi
utilizado fetchAssoc.
A seguir mais opes:
SILEX E DOCTRINE
Outras formas de interagir com o seu banco de dados so:
fetchAll - Primeiro parmetro o SQL de consulta.
insert - Primeiro parmetro a tabela segundo os valores.
update - Primeiro parmetro a tabela segundo os
valores.
delete - Primeiro parmetro a tabela segundo os valores.
SILEX E MONOLOG
Monolog um componente que pode ser utilizado em Silex
para criao de logs do seu sistema.
um bom componente para o Silex j que utiliza a
interface de logs recomendada na PSR-3.
Em Silex para utilizar novamente voc precisa registrar o
componente MonologServiceProvider instalar o monolog.
Execute ento: composer require monolog/monolog.
Detalhe que ao registrar o monolog voc tambm deve
informar o local de armazenamento dos logs !
SILEX E MONOLOG
Podemos utilizar trs mtodos para gravao de logs com
Monolog:
addInfo() - Esse tipo de log utilizado para informaes
de processo, ou seja, dados informativos de fluxo.
addWarning() - Esse tipo de log utilizado para
informaes de aviso de processo.
addError() - Esse tipo de log utilizado para informaes
de erro de processo.
SILEX E MONOLOG
O FUTURO DOS FRAMEWORKS !
Estou na TDC para bater um papo com quem estiver
interessado !
SILEX !
Obrigado a todos vocs e especialmente a equipe da TDC por
ceder o espao.
Todo o cdigo utilizado nos exemplos esto no meu Github
no repositrio: https://github.com/michaeldouglas/palestra-
silex