1. Performance de verdade com
Phalcon Framework
Jaime da Costa Pereira Neto
http://jaimeneto.com
contato@jaimeneto.com
github.com/jaimeneto
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
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
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
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
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. 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
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. ➔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 %}