Anda di halaman 1dari 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


certificação 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


INTRODUÇÃO.
Para iniciar sobre o que é um Microframework usaremos como
exemplo o Bootstrap - ( Framework HTML, CSS e JavaScript )

● Existe muitos componentes, porém nem todos são utilizados.


● Por exemplo: Um pequeno formulário de contato, será que
realmente eu Preciso usar o Bootstrap ?
● Então quando devo utilizar ? - E quando não ?
● Até mesmo nesse mundo HTML e CSS existem
Microframeworks: http://fox-css.com
FULL STACK COMO TUDO COMEÇOU ?
● Nos primórdios veio Ruby On Rails e outras linguagens
como o PHP acham interessante o MVC !
● Nasce então 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 aplicação minimalistas - segundo o Wikipédia "
○ Ou seja, nem sempre eu preciso de um canhão para matar
uma mosca, por exemplo: Symfony e Zend Framework.
○ Então só devo utilizar Microframework para pequenas
aplicações ? - Não, caso você tenha uma aplicação bem
organizada um Microframework pode sim ajudar !
○ Ou até mesmo para a criação 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 código suficiente para tornar mais ágil o
meu desenvolvimento ? - Sim, vamos ver o que ?
○ Primeiramente um Microframework é mais simples de
instalar e sair utilizando.
○ A inserção de componentes será feita conforme
necessário. 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 não é ruim !
● Desvantagem deste crescimento é que eles se tornaram
complicados para desenvolvimento de projetos mais simples
ou até mesmo para entendimento de suas estruturas.
● Aprovação da PSR-7 - Que é a padronização dos
componentes de Request e Responses. A título 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 melhor desse mundo dos Microframeworks é a liberdade
de componentes !
POR QUE SILEX ?
● Silex é baseado em um dos mais populares Frameworks PHP
que é o Symfony. Para muitos desenvolvedores PHP é uma
verdadeira alegria mencionar ele, pois é considerado um dos
melhores Frameworks PHP ou até mesmo o melhor !
● Silex é baseado nos componentes do Symfony como por
exemplo: HttpKernel ( Coração do Symfony 2 ).
● Desenvolvido por Fabien Potencier o mesmo criador do
Symfony.
POR QUE SILEX ?
● Silex foi criado para aplicações pequenas com foco em
agilidade que seja extensível e fácil de testar !
● Utiliza o Pimple para controle de injeção de dependência
tornando ainda mais fácil a utilização de componentes
terceiros.
● A instalação é muito simples com apenas um arquivo
composer.json e o index.php o Silex já pode ser utilizado !
POR QUE LUMEN ?
● Inicialmente saiba que o Lumen também é um
Microframework derivado do Laravel, criado por Taylor
Otwell o mesmo criador do Framework Laravel.
○ Muitos utilizam Laravel e não conhecem Lumen !
○ Criado por Taylor enquanto fazia micro serviços para o
projeto Envoyer (Envoyer é um implementador zero-
down-time para projetos PHP & Laravel).
● Segundo o Benchmarking feito por Taylor o Lumen é mais
rápido !
SLIM ELE TAMBÉM EXISTE !
● Slim também é um microframework criado por:
○ Josh Lockhart, Andrew Smith e Rob Allen.
● Fácil de instalar e também de utilizar.
● Devemos saber que existem mais opções além do Silex,
Lumen e Slim !
MAIS OPÇÕES QUAIS SÃO ?
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
dependência da ideia do Framework. Se você não gosta do
Laravel não vale a pena tentar utilizar!
○ O tamanho da estrutura do Lumen assusta para quem
deseja algo mais simples possível !
○ Muitos não concordam que o Lumen e tão rápido assim
como é vendido na documentação.
○ A seguir veremos a imagem do comparativo do Lumen:
SILEX x LUMEN
● Benchmark de requisições que segundo o Taylor o Lumen é
mais rápido que o Silex e Slim.

● Vídeo do Benchmark feito por Taylor Otwell:


○ https://youtu.be/WqRpa_5m7h4
SILEX x LUMEN
● Vantagem Lumen:
○ A documentação é excelente e se você seguir, consegue
utilizar sem a ajuda de tutorial.
○ Segundo Taylor Otwell o Lumen é mais rápido que:
■ Silex e Slim
○ Por se basear no Laravel o Lumen é tão agradável de
utilizar como seu irmão Laravel, claro isso para quem
gosta do Laravel.
SILEX x LUMEN
● Vantagem Lumen:
○ Preparado para migrar para um projeto Laravel
Framework se for necessário.
○ A sintaxe do Lumen é de fácil utilização e compreensão.
SILEX x LUMEN
● Desvantagem Silex:
○ Desvantagem ? - Sinceramente eu ainda não encontrei !
SILEX x LUMEN
● Vantagem Silex:
○ Ele é um dos Microframeworks PHP mais rápido.
○ Silex é muito fácil de implementar e sair usando.
○ Ótima documentação.
○ Utiliza componentes do seu irmão Symfony. É modular,
ou seja, use somente o que você precisa!
○ Ótima escolha para criação de sistemas grandes de forma
profissional e sem muita dor de cabeça !
INSTALANDO O SILEX
● O que você precisa para iniciar é:
○ Criar uma pasta para o seu projeto.
○ Criar ou editar o arquivo composer.json

● Caso já tenha o composer então execute: composer install


ESTRUTURA INICIAL DO SILEX
● Após a execução da instalação das dependências a estrutura
ficará da seguinte maneira, em meu caso:

| -- PalestraSilex Repare como é pouca


| -- vendor dependência 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 necessário para começar sua vida com o
Silex. É, por exemplo: criar um arquivo index.php, criar a
instância de Application e chamar o método: run().
TRABALHANDO COM ROTAS NO SILEX
● Para realizar seu primeiro teste de rota em Silex.
○ Poderíamos então 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 requisições 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 método get.
● Além 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 padrão no Symfony
aqui no Silex você precisa adicionar o Twig.
○ Para inserir o Twig você precisa executar o comando:
composer require twig/twig
● Além de instalar o Twig é interessante você instalar o
componente: Synfony Twig-Bridge que serve para realizar
uma integração 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 execução 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
então exibir os dados
no padrão Json.
SILEX E O TWIG
● Estrutura de pasta views e o template marcas.twig que agora é
responsável por exibir o Json de dados !
○ A estrutura marcas.twig só recebe o seguinte código:
■ {{ marcas|json_encode() }}
SILEX E DOCTRINE
● Basicamente Doctrine é um Framework de Mapeamento
Objeto-Relacional e dispensa muitas apresentações pois
muitos já o conhecerem.
○ Em Silex nós o utilizaremos com DoctrineServiceProvider
que fornece uma integração entre Doctrine DBAL e Silex.
● Para utilizar em Silex você também 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 conexão. E sem muita
dificuldade pode utilizar uma
consulta em seu banco de dados!
○ Para obter os dados foi
utilizado fetchAssoc.
○ A seguir mais opções:
SILEX E DOCTRINE
● Outras formas de interagir com o seu banco de dados são:
○ fetchAll - Primeiro parâmetro o SQL de consulta.
○ insert - Primeiro parâmetro é a tabela segundo os valores.
○ update - Primeiro parâmetro é a tabela segundo os
valores.
○ delete - Primeiro parâmetro é a tabela segundo os valores.
SILEX E MONOLOG
● Monolog é um componente que pode ser utilizado em Silex
para criação 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 então: composer require monolog/monolog.
○ Detalhe é que ao registrar o monolog você também deve
informar o local de armazenamento dos logs !
SILEX E MONOLOG
● Podemos utilizar três métodos para gravação de logs com
Monolog:
○ addInfo() - Esse tipo de log é utilizado para informações
de processo, ou seja, dados informativos de fluxo.
○ addWarning() - Esse tipo de log é utilizado para
informações de aviso de processo.
○ addError() - Esse tipo de log é utilizado para informações
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 vocês e especialmente a equipe da TDC por
ceder o espaço.
● Todo o código utilizado nos exemplos estão no meu Github
no repositório: https://github.com/michaeldouglas/palestra-
silex

Anda mungkin juga menyukai