Trabalhando de forma profissional com silex

1.342 visualizações

Publicada em

Acostumado a sempre ouvir falar de: Zend FrameWork, Laravel, symfony e entre outros ? - Porém existem outras ferramentas que não precisam ser verdadeiros canhões e que seja possível organizar, trabalhar com reutilização de código e etc. Que tal utilizar então um : micro-framework para ajudar nessas rotinas mais comuns e imagine que esse micro-framework seja baseado no symfony ? Essa maravilha é o Silex que para quem está começando a se organizar e deseja entrar no mundo PHP profissional tais como, testes, API's, MVC, módulos próprios, services e entre outros irá ajudar a trilhar esse caminho sem muita dor de cabeça. A palestra visa mostrar os seguintes assuntos:

* O que é um micro-framework
* Por que devo utilizar ?
* Silex X Lumen !
* Instalando o Silex
* Serviços
* Rotas
* Twig - Utilização básica
* Doctrine - Utilização básica
* Monolog

Publicada em: Tecnologia
0 comentários
8 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.342
No SlideShare
0
A partir de incorporações
0
Número de incorporações
25
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
8
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Trabalhando de forma profissional com silex

  1. 1. TRABALHANDO DE FORMA PROFISSIONAL COM SILEX
  2. 2. 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
  3. 3. QUEM SOU EU ? https://github.com/michaeldouglas https://twitter.com/mdba_araujo https://facebook.com/mdba.araujo
  4. 4. QUEM SOU EU ? Livro: Zend Certified Engineer - Descomplicando a certificação PHP
  5. 5. QUEM SOU EU ? Laravel PagSeguro https://github. com/michaeldouglas/laravel-pagseguro
  6. 6. LARAVEL CONFERENCE BRASIL Laravel Conference Brasil https: //laraconfbrasil.com.br Data do evento: Dia 8 de outubro
  7. 7. 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
  8. 8. 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
  9. 9. 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!
  10. 10. 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!
  11. 11. 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.
  12. 12. POR QUE DEVO UTILIZAR ? ● O mais interessante da utilização dos Microframeworks é a liberdade de componetes!
  13. 13. 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.
  14. 14. 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 !
  15. 15. 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.
  16. 16. 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 ?
  17. 17. MAIS OPÇÕES QUAIS SÃO ?
  18. 18. 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.
  19. 19. SILEX x LUMEN ● Popularidade GitHub: Laravel, Symfony e Zend Framework
  20. 20. 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.
  21. 21. 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
  22. 22. 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;
  23. 23. 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.
  24. 24. SILEX x LUMEN ● Desvantagem Silex: ○ Desvantagem? - Sinceramente eu ainda não encontrei!
  25. 25. 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.
  26. 26. 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.
  27. 27. 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!
  28. 28. ESTRUTURA INICIAL DO SILEX ● Só isso ? - Sim, para iniciar é exatamente simples como você pode reparar e sem a necessidade de muitos tutoriais e etc !
  29. 29. 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().
  30. 30. 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.
  31. 31. 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()
  32. 32. TRABALHANDO COM ROTAS NO SILEX
  33. 33. 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.
  34. 34. SILEX E O TWIG Para inserir o componente execute o comando: composer require symfony/twig-bridge
  35. 35. 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:
  36. 36. 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.
  37. 37. 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() }}
  38. 38. 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"
  39. 39. 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:
  40. 40. 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.
  41. 41. 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 !
  42. 42. 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.
  43. 43. SILEX E MONOLOG
  44. 44. ● Estou na TDC para bater um papo com quem estiver interessado ! O FUTURO DOS FRAMEWORKS !
  45. 45. ● 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 !

×