Successfully reported this slideshow.

Performance de verdade com Phalcon Framework

1

Share

Loading in …3
×
1 of 26
1 of 26

Performance de verdade com Phalcon Framework

1

Share

Download to read offline

No meio de tantos frameworks PHP já disponíveis, o que este framework pode oferecer de novo que outros mais famosos ainda não tenham?

No meio de tantos frameworks PHP já disponíveis, o que este framework pode oferecer de novo que outros mais famosos ainda não tenham?

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Performance de verdade com Phalcon Framework

  1. 1. Performance de verdade com Phalcon Framework Jaime da Costa Pereira Neto http://jaimeneto.com contato@jaimeneto.com github.com/jaimeneto
  2. 2. Jaime Neto ➔ Graduado em Telemática pelo CEFET-PB (atual IFPB) ➔ Especialista em Desenvolvimento para Web pela UNIBRATEC (atual Estácio iDez) ➔ Zend Certified Engineer - Zend Framework ➔ Trabalha como Analista de Sistemas no Instituto Chico Mendes de Conservação da Biodiversidade (ICMBio) ➔ Membro do PHP-PB desde os primórdios
  3. 3. Você conhece o Phalcon?
  4. 4. ➔Full stack Framework PHP ➔Lançado em 2012 ➔Versão atual: 3.1.1 ➔Traduzido para 38 idiomas (inclusive Português) ➔Open source (BSD License) ➔Baixo acoplamento Informações
  5. 5. Mas o que ele oferece?
  6. 6. Recursos ➔MVC e HMVC ➔Dependency Injection ➔Rest ➔Autoloader ➔Router ➔ORM ➔Cache ➔Template Engine ➔i18n ➔Forms ➔Flash Messages ➔ACL ➔Sharding ➔Crypt
  7. 7. E qual é o verdadeiro diferencial?
  8. 8. ➔Funciona como uma extensão de servidor web, escrita em linguagem C ◆ Velocidade de execução maior (não precisa processar os arquivos PHP do framework) ◆ Consegue lidar com mais solicitações HTTP por segundo ◆ Quantidade menor de arquivos Performance
  9. 9. E as desvantagens?
  10. 10. ➔Funciona como uma extensão de servidor web, escrita em linguagem C ◆ Dificulta a depuração do código ◆ Pode haver uma curva de aprendizado maior ◆ Caso algo dê errado, você poderá ter que depurar código em C ◆ Pode haver dificuldades para atualização de versão no servidor Desvantagens
  11. 11. Ele faz isso tudo sozinho?
  12. 12. ➔A partir da versão 2.0 o Phalcon passou a utilizar o Zephir ◆ Linguagem de alto nível projetada para facilitar a criação e manutenção de extensões para PHP ◆ Open source (MIT license) ◆ Desenvolvimento com linguagens compiladas perdem na produtividade, mas ganham na performance. A idéia do Zephir é ter o melhor dos dois mundos. ◆ https://zephir-lang.com
  13. 13. E só existe uma forma de usar?
  14. 14. ➔Ferramenta RAD (Rapid Application Development) ◆ Permite criar rapidamente o esqueleto da aplicação ◆ Permite gerar partes da aplicação de acordo com a necessidade (module, controller, model) ◆ Gera CRUD completo baseado nas tabelas do Banco de Dados ◆ Funciona como script de linha de comando ◆ Oferece uma opção visual para ser usada via browser Devtools
  15. 15. phalcon create-project blog simple --enable-webtools phalcon scaffold --table-name posts phalcon create-controller --name users phalcon create-model --name users Devtools ➔Usando a linha de comando (Exemplo) ◆ Criar projeto blog com estrutura simples e ativar webtools ◆ Criar toda estrutura CRUD da tabela posts (controller, model, telas de busca, cadastro, alteração, exclusão, lista) ◆ Criar controller e model de users
  16. 16. Webtools
  17. 17. ➔ 17 sugestões de estrutura ➔ https://github.com/phalcon/mvc simple ├── apps │ ├── controllers │ │ ├── IndexController.php │ │ └── ProductsController.php │ ├── models │ │ └── Products.php │ └── views │ └── products │ └── index.phtml └── public └── index.php MVC multiple ├── apps │ ├── backend │ │ ├── Module.php │ │ ├── controllers │ │ │ ├── IndexController.php │ │ │ ├── LoginController.php │ │ │ └── ProductsController.php │ │ ├── models │ │ │ └── Products.php │ │ └── views │ │ ├── login │ │ │ └── index.phtml │ │ └── products │ │ └── index.phtml │ └── frontend │ ├── Module.php │ ├── controllers │ │ ├── IndexController.php │ │ ├── ProductsController.php │ │ └── UsersController.php │ ├── models │ │ └── Products.php │ └── views │ ├── index │ │ └── index.phtml │ └── products │ └── index.phtml └── public └── index.php multiple-shared-views ├── apps │ ├── common │ │ └── views │ │ ├── index │ │ │ └── index.phtml │ │ ├── index.phtml │ │ └── products │ │ └── index.phtml │ └── modules │ ├── backend │ │ ├── Module.php │ │ ├── controllers │ │ │ ├── IndexController.php │ │ │ └── ProductsController.php │ │ └── models │ │ └── Products.php │ └── frontend │ ├── Module.php │ └── controllers │ └── IndexController.php └── public └── index.php
  18. 18. ➔ Phalcon pode funcionar também como um micro-framework ➔Opção mais adequada para implementar pequenas aplicações, APIs e protótipos ➔O site do phalcon foi feito como micro app: https://github.com/phalcon/website ➔Micro app gerado com Devtools: micro ├── config │ └── config.php ├── index.html ├── public │ └── index.php └── views ├── 404.phtml └── index.phtml Micro
  19. 19. ➔Mecanismo de Templates ◆ Escrito em Zephic/C para PHP ◆ Oferece helpers para facilitar no desenvolvimento das views ◆ Integrado com outros componentes do Phalcon ◆ Pode ser usado separadamente do Phalcon ◆ O phalcon gera cache dos templates para ganho de performance Volt {# app/views/products/show.volt #} {% block last_products %} {% for product in products %} * Name: {{ product.name|e }} {% if product.status == 'Active' %} Price: {{ product.price + product.taxes/100}} {% endif %} {% endfor %} {% endblock %}
  20. 20. Onde isso nos leva?
  21. 21. ➔Consulta única ao banco de dados Fonte: www.techempower.com/benchmarks (16/11/2016) Benchmark
  22. 22. ➔Múltiplas consultas ao banco de dados Fonte: www.techempower.com/benchmarks (16/11/2016) Benchmark
  23. 23. ➔Site Oficial: https://phalconphp.com/pt/ ➔Blog Oficial: https://blog.phalconphp.com ➔Github Oficial: https://github.com/phalcon ➔Listas de sites feitos em phalcon: ◆ https://github.com/phalcon/cphalcon/wiki/Powered-by-Phalcon ◆ https://builtwith.phalconphp.com ➔Sua Escolha (Projeto do PHP-PB) ◆ https://github.com/php-pb/Sua-escolha Links
  24. 24. ➔Projeto Phalcon Brasil ◆ http://phalconbrasil.com.br ◆ Apoio: https://www.soloweb.com.br Convite
  25. 25. Dúvidas? <?php $contato = [ ‘nome’ => ‘Jaime Neto’, ‘email’ => ‘contato@jaimeneto.com’, ‘blog’ => ‘http://jaimeneto.com’, ‘twitter’ => ‘@jaimecpn’ ]; var_dump($contato); ?>
  26. 26. Muito obrigado!

×