45
TRABALHANDO DE FORMA PROFISSIONAL COM SILEX

Trabalhando de forma profissional com silex

Embed Size (px)

Citation preview

Page 1: Trabalhando de forma profissional com silex

TRABALHANDO DE FORMA PROFISSIONAL COM SILEX

Page 2: 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

Page 4: Trabalhando de forma profissional com silex

QUEM SOU EU ?

Livro: Zend Certified Engineer - Descomplicando a

certificação PHP

Page 6: Trabalhando de forma profissional com silex

LARAVEL CONFERENCE BRASIL

Laravel Conference Brasil https:

//laraconfbrasil.com.br

Data do evento: Dia 8 de outubro

Page 7: Trabalhando de forma profissional com silex

INTRODUÇÃO.Para iniciar sobre o que é um Microframework usaremos como

exemplo o Bootstrap - (Framework HTML, CSS e JavaScript)

● Muitos componentes, nem todos serão usados.

● Por exemplo: Um pequeno formulário de contato será que

Preciso usar o Bootstrap ?

● Quando utilizar ? - E quando não ?

● Até mesmo nesse mundo HTML e CSS existem

Microframeworks: http://fox-css.com

Page 8: Trabalhando de forma profissional com silex

FULL STACK COMO TUDO COMEÇOU ?● Nos primórdios veio Ruby On Rails 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

Page 9: Trabalhando de forma profissional com silex

O QUE É UM MICROFRAMEWORK?● " Microframework é um termo utilizado para se referir a um

framework de aplicação minimalistas - 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 ajudar!

○ Ou até mesmo para a criação de uma API, por que utilizar

um Full Stack se você tem os Microframeworks!

Page 10: Trabalhando de forma profissional com silex

POR QUE DEVO UTILIZAR?● Legal, mas se um Microframewok é um Framework

simplificado que resolve pequenos problemas será que tem

uma estrutura de códigos suficiente para tornar mais ágil o

meu desenvolvimento? - Sim, mas o que?

○ Primeiramente que um Microframework é mais simples

de utilizar.

○ Inserção de componentes conforme necessário, muitos

componentes do Full Stack provavelmente você nunca

tenha utilizado!

Page 11: Trabalhando de forma profissional com silex

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.

Page 12: Trabalhando de forma profissional com silex

POR QUE DEVO UTILIZAR ?● O mais interessante da utilização dos Microframeworks é a

liberdade de componetes!

Page 13: Trabalhando de forma profissional com silex

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 (Coração do Symfony 2).

● Desenvolvido por Fabien Potencier o mesmo criador do

Symfony.

Page 14: Trabalhando de forma profissional com silex

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 index.php o Silex já pode ser utilizado !

Page 15: Trabalhando de forma profissional com silex

POR QUE LUMEN ?● Lumen também é um Microframework derivado do Laravel,

criado por Taylor Otwell.

○ Muitos utilizam Laravel e não conhecem Lumen.

○ Criado por Taylor quando estava fazendo 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.

Page 16: Trabalhando de forma profissional com silex

SLIM ELE TAMBÉM EXISTE !● Slim também é um microframework criado por: Josh

Lockhart, Andrew Smith e Rob Allen.

● Fácil de instalar e de utilzar.

● O futuro parece ser dos Microframeworks?

○ Quais opções temos além do Silex, Lumen e Slim ?

Page 17: Trabalhando de forma profissional com silex

MAIS OPÇÕES QUAIS SÃO ?

Page 18: Trabalhando de forma profissional com silex

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.

Page 19: Trabalhando de forma profissional com silex

SILEX x LUMEN● Popularidade GitHub: Laravel, Symfony e Zend Framework

Page 20: Trabalhando de forma profissional com silex

SILEX x LUMEN● Desvantagem Lumen:

○ Por ser baseado no Laravel existe um pouco de

dependência do Framework e conhecimento do mesmo,

se você não gosta do Laravel não vale a pena;

○ O tamanho de estrutura do Lumen assusta para quem

deseja algo o mais simples possível;

○ Muitos não concordam que o Lumen é tão rápido assim

como é vendido na documentação;

○ A seguir veremos o comparativo do Lumen, Silex e Slim.

Page 21: Trabalhando de forma profissional com silex

SILEX x LUMEN● Imagem do Benchmark de requisições que segundo o Taylor,

Lumen em comparação ao Silex e Slim é mais rápido:

● Vídeo do Benchmark feito por Taylor Otwell:

○ https://youtu.be/WqRpa_5m7h4

Page 22: Trabalhando de forma profissional com silex

SILEX x LUMEN● Vantagem Lumen:

○ A documentação é excelente se você seguir consegue

utilizar sem dor de cabeça;

○ Segundo Taylor Otwell 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;

Page 23: Trabalhando de forma profissional com silex

SILEX x LUMEN● Vantagem Lumen:

○ Preparado para migrar para um projeto Laravel

Framework;

○ A sintaxe do Lumen é de fácil utilização e compreensão.

Page 24: Trabalhando de forma profissional com silex

SILEX x LUMEN● Desvantagem Silex:

○ Desvantagem? - Sinceramente eu ainda não encontrei!

Page 25: Trabalhando de forma profissional com silex

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.

Page 26: Trabalhando de forma profissional com silex

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.

Page 27: Trabalhando de forma profissional com silex

ESTRUTURA INICIAL DO SILEX● Após a execução da instalação das dependências, a estrutura

ficará da seguinte maneira:

| -- PalestraSilex

| -- vendor

| -- composer.json

| -- composer.lock

Repare como é pouca

dependência baixada

para o Silex

funcionar!

Page 28: Trabalhando de forma profissional com silex

ESTRUTURA INICIAL DO SILEX● Só isso ? - Sim, para iniciar é exatamente simples como você

pode reparar e sem a necessidade de muitos tutoriais e etc !

Page 29: Trabalhando de forma profissional com silex

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().

Page 30: Trabalhando de forma profissional com silex

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.

Page 31: Trabalhando de forma profissional com silex

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()

Page 32: Trabalhando de forma profissional com silex

TRABALHANDO COM ROTAS NO SILEX

Page 33: Trabalhando de forma profissional com 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.

Page 34: Trabalhando de forma profissional com silex

SILEX E O TWIGPara inserir o componente execute o comando: composer require

symfony/twig-bridge

Page 35: Trabalhando de forma profissional com silex

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:

Page 36: Trabalhando de forma profissional com silex

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.

Page 37: Trabalhando de forma profissional com silex

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() }}

Page 38: Trabalhando de forma profissional com silex

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"

Page 39: Trabalhando de forma profissional com silex

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:

Page 40: Trabalhando de forma profissional com silex

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.

Page 41: Trabalhando de forma profissional com silex

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 !

Page 42: Trabalhando de forma profissional com silex

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.

Page 43: Trabalhando de forma profissional com silex

SILEX E MONOLOG

Page 44: Trabalhando de forma profissional com silex

● Estou na TDC para bater um papo com quem estiver

interessado !

O FUTURO DOS FRAMEWORKS !

Page 45: Trabalhando de forma profissional com 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

SILEX !