Um estudo comparativo entre frameworks PHP, analisando as diferentes abordagens, vantagens e desvantagens de cada um deles, a fim de entender em que situações cada um deles é mais adequado para uma aplicação.
Palestra sobre Certificação Zend Framework apresentada online via Google Hang Out para o projeto ProPHP do PHP-PB (www.php-pb.net) no dia 09 de Março de 2013.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Rogério Prado, Evangelista do PHPSP, fez a palestra "Vagrant, LXC, Docker, etc: Entenda as diferenças", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Palestra sobre Certificação Zend Framework apresentada online via Google Hang Out para o projeto ProPHP do PHP-PB (www.php-pb.net) no dia 09 de Março de 2013.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Rogério Prado, Evangelista do PHPSP, fez a palestra "Vagrant, LXC, Docker, etc: Entenda as diferenças", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Deep Dive na plataforma Java, cobrindo os motivos da JVM/JRE ser a menina dos olhos em um mundo de TI poliglota! PErformance, Segurança, Jython, JRuby e muito mais!
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
Slides da palestra que seria ministrada no 38º GURU SP, evento promovido pelo grupo de usuários Ruby de São Paulo no dia 07 de novembro de 2015.
Nesta palestra, apresento os frameworks Cucumber e WebDriver, usados para automação de testes em aplicações web usando BDD.
Desmistificando o framework da Zend, foi ministrado no 2.PHP Maranhão, encontro anual dos usuários PHP do estado do Maranhão. O Objetivo desta palestra e dar dicas sobre como começar e quais componentes estudar para então começar a desenvolver aplicações com esse poderoso framework que é mais simples do que parece.
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
Ari Stopassola Jr, Analista de Sistemas do perito.inf.br, fez a palestra "Rumo à Certificação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
O que acontece quando você digita um comando javascript? Como o seu browser ou máquina entende o que tem que ser feito? Isso é discutido nessa palestra, nos aprofundamos na linguagem e a sua engine v8 que é escrita em C++
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
Essa apresentação faz parte do minicurso Zend Framework 2, onde apresentamos suas principais características e como fazer a instalação deste framework web de ponta.
Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.
Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;
A palestra tem como objetivo mostrar ferramentas do mercado atual, como editores, funções úteis, micro-frameworks e algumas boas práticas que agilizem o processo de codificação. Apresentada na PHP Conference de 2013 - Osasco SP.
Deep Dive na plataforma Java, cobrindo os motivos da JVM/JRE ser a menina dos olhos em um mundo de TI poliglota! PErformance, Segurança, Jython, JRuby e muito mais!
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
Slides da palestra que seria ministrada no 38º GURU SP, evento promovido pelo grupo de usuários Ruby de São Paulo no dia 07 de novembro de 2015.
Nesta palestra, apresento os frameworks Cucumber e WebDriver, usados para automação de testes em aplicações web usando BDD.
Desmistificando o framework da Zend, foi ministrado no 2.PHP Maranhão, encontro anual dos usuários PHP do estado do Maranhão. O Objetivo desta palestra e dar dicas sobre como começar e quais componentes estudar para então começar a desenvolver aplicações com esse poderoso framework que é mais simples do que parece.
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
Ari Stopassola Jr, Analista de Sistemas do perito.inf.br, fez a palestra "Rumo à Certificação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
O que acontece quando você digita um comando javascript? Como o seu browser ou máquina entende o que tem que ser feito? Isso é discutido nessa palestra, nos aprofundamos na linguagem e a sua engine v8 que é escrita em C++
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
Essa apresentação faz parte do minicurso Zend Framework 2, onde apresentamos suas principais características e como fazer a instalação deste framework web de ponta.
Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.
Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;
A palestra tem como objetivo mostrar ferramentas do mercado atual, como editores, funções úteis, micro-frameworks e algumas boas práticas que agilizem o processo de codificação. Apresentada na PHP Conference de 2013 - Osasco SP.
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
Na nossa vida é importante nos preocuparmos com nossa saúde, e DEVEMOS fazer o mesmo com a saúde dos nossos softwares.
Você verá aqui as principais ferramentas para medir qualidade e encontrar alguns tumores nos seus projetos!
Slides de apresentação introdutória ao framework CakePHP. Contém conceitos e trechos de código ilustrativos de uso da ferramenta. Na apresentação apresento ainda exemplos de código da aplicação contruída além de todo o networking e troca de experiências.
Originalmente ministrada a uma plateia de estudantes no evento BelemCodeIn2015() em 08 de maio de 2015 no IFPA em Belém.
Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
Apresentação da framework de desenvolvimento de aplicações web - cakePHP.
Aprender a criar uma aplicação web em PHP usando o CakePHP.
- Instalação?
- Organização?
- Como criar um Blog?
- Autenticação?
- Multi-utilizador?
Palestra realizada em abril de 2009 no FLISOL de Aracaju/Sergipe. O tema foi o framework orientado a objetos em PHP chamado Symfony.
Algumas de suas features:
- utiliza a arquitetura MVC (Model View Controller), isto é, separação das camadas de apresentação, controle e modelo.
- utiliza bastantes componentes independentes como o Doctrine e Propel (ORM), YML (arquivos de configuração) e outros. Que podem ser adotados em outros projetos que não utilizam o Symfony.
- possui geração automática de CRUD (create, retrieve, update, delete)
- possui uma documentação e comunidade muito grandes.
- geração automática de telas de administração
- ambiente de desenvolvimento com debug
- ambiente de teste
- integração com sincronizador de arquivos (para atualização do projeto na produção)
- separação de configuração para ambientes de teste, desenvolvimento e produção.
- e muito mais...
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
Nesta palestra são abordados alguns desafios a serem enfrentados na criação de um Framework PHP open-source e também os obstáculos a serem superados para que o mesmo evolua tecnologicamente, mantendo a retrocompatibilidade e uma base de usuários ativa, fazendo o uso correto de seus conceitos.
2. JAIME NETO
● Graduado em Telemática pelo CEFET-PB (atual IFPB)
● Especialista em Desenvolvimento de Software para Web pela UNIBRATEC
(atual Estácio)
● Zend Certified Engineer - Zend Framework 1
● Analista de Sistemas no Instituto Chico Mendes de Conservação da
Biodiversidade (ICMBio)
● Programador PHP desde 2004
● Membro do PHP-PB desde os primórdios
9. Ficam as questões:
● Será que todos os frameworks são apenas
implementações diferentes para um mesmo fim?
● Os objetivos deles são os mesmos?
● Quais são melhores e em que aspectos?
● Existe um framework “bala de prata” que resolva todos
os problemas?
10. Como desmistificar isso?
/php-pb/Sua-escolha
Proposta para a comunidade:
● Implementar um mesmo projeto em vários frameworks, a partir de
um modelo padrão
● Promover a comparação entre os frameworks existentes
● Criar um modelo padrão para implementação de futuros projetos
● Tirar dúvidas básicas de configuração e implementação
● Ideia de Abdala Cerqueira, criada em 2012
11. Mas isso é suficiente?
Comparação difícil quando temos:
● Programadores diferentes
● Estilos de codificação diferentes
● Apenas código
● Sem orientação da lógica utilizada
● Versões obsoletas depois de um tempo
12. O que fazer, então?
● Estudar os frameworks
● Definir os aspectos a serem levados em conta
● Definir um projeto básico a ser implementado neles
● Utilizar apenas o que eles oferecem
● Usar bibliotecas externas apenas se estiver explícito
na documentação
● Botar a mão na massa!
13. O projeto
● Um BLOG
● 3 tipos de usuários (admin, user e guest)
● Posts
● Comentários
● Área administrativa
● Validação por email
14. Os aspectos
● Instalação
● Configurações
● Acesso ao BD
● Template engine
● Rotas
● Autenticação
● Autorização
● Documentação
● Formulários
● Validação
● Envio de Emails
● Paginação
● Tradução de textos
● Migrations
17. Criando o projeto
composer create-project laravel/laravel blog --prefer-dist
Framework completo instalado, com todos os pacotes
Deve ser instalado como uma extensão do PHP.
phalcon project blog simple --template-engine=volt
composer create-project -s dev zendframework/skeleton-application blog
Pacotes adicionais devem ser instalados conforme necessário
composer create-project -s dev zendframework/zendframework blog → Framework completo, com todos os pacotes
composer create-project symfony/skeleton blog
Pacotes adicionais devem ser instalados conforme necessário
18. Ferramentas RAD
artisan
e o tinker!!!
Instalado separadamente, via git ou download
devtools
zendtool
composer require symfony/console
console
24. Autenticação
php artisan make:auth 😎
Cria cadastro e recuperação de senha, login, formulários, rotas e já deixa preparada a
estrutura para validação de e-mail
Limita-se a oferecer algumas ferramentas para gerenciamento de sessão, e geração/
verificação de senha. Exige que criemos praticamente toda a lógica de autenticação. 😒
composer require zendframework/zend-authenticator
Apesar de poderoso, não é nem um pouco prático e exige muita configuração e o uso de
muitas classes (MUITO CÓDIGO). 😱
composer require maker-bundle --dev
php bin/console make:auth e responde algumas perguntas 😄
Cria cadastro, login, formulários e rotas
25. Autorização
Policies 😍
php artisan make:policy PostPolicy --model=Post
ACL - Lista de Controle de Acesso
RBAC - Controle de acesso baseado em papéis
ACL - Lista de Controle de Acesso
composer require symfony/security-bundle
security.yaml, inserção em código ou annotations 😃
26. Migrations
php artisan make:seeder PostsSeeder
php artisan db:seed
Faker - Criação de conteúdo aleatório 😉
phalcon migration generate 😍
phalcon migration run
Classes versionadas
Faz na mão mesmo… 😒
composer require --dev doctrine/doctrine-fixtures-bundle
php bin/console make:fixtures
php bin/console doctrine:fixtures:load
27. Tradução de textos
{{ __('Translate this') }}
Fácil de encontrar pacotes de tradução prontos
Diferencia tradução de atributos e textos em geral
Bastante personalizável
Exige um pouco de configuração 😓
Organizado e simples de usar
composer require zendframework/zend-mvc-i18n
Bastante flexível e personalizável
composer require symfony/translation
{{ 'Translate this'|trans }} ou {% trans %} Translate this {% endtrans %}
php bin/console translation:update --dump-messages --output-format=yaml --force pt 😍
28. Visão geral
Configuração Simples e organizada.
Documentação Excelente na maior parte, mas contém algumas falhas.
Estrutura de pastas Padrão simples, não muito flexível.
Formulários Validação prática. Segurança contra CSRF. Não oferece,
nativamente, ferramentas para gerar campos do formulário.
Paginação Super simples de implementar, oferece diversos tipos.
E-mails Oferece uma API bastante simples e fácil de implementar.
Comunidade Enorme e extremamente ativa.
Extremamente prático e produtivo
Pouca codificação
29. Visão geral
Configuração Simples e organizada.
Documentação Incompleta e muitas vezes confusa. Deficiente nas traduções.
Estrutura de pastas Padrão simples, bastante flexível e personalizável.
Formulários Muitos recursos de validação, nem sempre muito práticos.
Segurança contra CSRF. Geração de campos de formulário.
Paginação Ferramenta simples. Não oferece template pronto.
E-mails Não oferece uma API própria.
Comunidade Modesta, mas vem crescendo.
Extremamente performático
Instalação e atualização de versão
podem ser complicadas
30. Visão geral
Configuração Complicada, exige criação de muitas classes, muito código.
Documentação Bastante completa, mas poderia ter mais exemplos práticos.
Estrutura de pastas Bastante flexível e personalizável.
Formulários Ferramenta para criação poderosa. Muitas ferramentas para
validação e filtros.
Paginação Ferramenta robusta. Não oferece template pronto.
E-mails Ferramenta com diversas classes de transporte.
Comunidade Muito grande, mas vem perdendo espaço.
Muito robusto e completo
Código muito bem testado
Adequado para sistemas muito grandes
31. Visão geral
Configuração Simples e organizada.
Documentação Bastante completa, com bons exemplos práticos.
Estrutura de pastas Padrão simples, não muito flexível.
Formulários Ferramenta para criação poderosa. Muitas ferramentas para
validação e filtros. Segurança contra CSRF.
Paginação Não oferece uma API própria.
E-mails Utiliza o SwiftMailer (API própria em desenvolvimento)
Comunidade Muito grande e ativa.
Muito robusto, flexível e produtivo
Faz bastante uso de ferramentas externas consolidadas
32. Diferenciais
Produtividade
Performance
Controle
Flexibilidade
● Gera muita coisa automática
● Foco nas regras de negócio
● Código compilado
● Não precisa ser interpretado
● Nada acontece sem que você saiba como
● Permite instalar apenas o que precisar
● Permite instalar apenas o que precisar
● Aproveita o melhor de outras ferramentas
33. Conclusão
● Não existe “bala de prata”!
● A escolha por um framework vai depender de:
○ Tamanho e necessidades do projeto
○ Tamanho e experiência da equipe
○ Exigências de performance
○ Acesso ao servidor e suas configurações
○ Importância do controle
○ Interação com outras ferramentas
○ Tempo disponível
34. Depois dessa trabalheira toda… compartilhar!
● Especificações do projeto
● Orientações de instalação
● Passo-a-passo da implementação
● Resumo de cada framework
● Comparação e conclusões
AGUARDEM!