Jaime Neto apresenta sobre o framework PHP Zend Framework. Ele discute os principais componentes e estruturas do Zend Framework, incluindo modelos, controladores, visões e formulários. Ele também fornece exemplos de código para ilustrar o uso de vários componentes como acesso a banco de dados, rotas e controllers.
2. Tecnólogo em Telemática (CEFET-PB)
Especialista em Desenvolvimento para Web (UNIBRATEC)
Analista e desenvolvedor do
Analista e desenvolvedor da Ponto-R Comunicação
Trabalho com PHP desde 2004
Trabalho com Zend Framework desde 2007
Parte da equipe dos grupos PHP-PB e ZF-PB
Conhecendo o Zend Framework - Jaime Neto
3. Principais Framewoks PHP
Sobre o Zend Framework
Quem usa
Componentes
Estrutura da aplicação (sugestão)
O que mais o ZF me oferece?
Exemplos
E o ZF2?
Veja também...
Perguntas
Conhecendo o Zend Framework - Jaime Neto
5. Os 7 Frameworks PHP mais populares em 2011
Zend Framework
CodeIgniter
Symfony
Yii
Kohana
Prado
CackePHP
Fonte: php-developer.org
Conhecendo o Zend Framework - Jaime Neto
6. Desenvolvido pela Zend Technologies
Conhecendo o Zend Framework - Jaime Neto
7. Lançamento:
Versão 1.0 - Junho de 2007
Versão 2.0 - Setembro de 2012
Código aberto (New BSD License)
Requer PHPUnit 3.3.0 para testes unitários
Últimas versões:
Versão 1.12 - requer PHP 5.1.4+ (recomenda-se 5.2.4+)
Versão atual: 2.0.4 - requer PHP 5.3+
Versão cobrada na prova de certificação: 1.5.3
http://zendframework.com
Conhecendo o Zend Framework - Jaime Neto
8. Totalmente orientado a objetos
Utiliza bastante padrões de projeto (design patterns)
Fracamente acoplado (“Preferir plugar a herdar”)
Não impõe regras de desenvolvimento ou estrutura
Pode ser usado como uma biblioteca de classes
Enorme variedade de componentes
Utiliza reescrita de url por padrão
Comunidade enorme
Curva de aprendizado lenta
Conhecendo o Zend Framework - Jaime Neto
11. Aplicação
Configurações
Regras de negócio (Model)
Acesso ao banco de dados
Estruturas de controle (Controller)
Arquivos de template (View)
Formulários
Documentação
Bibliotecas
Arquivos de acesso público
Imagens
Folhas de estilo
Javascript
Casos de teste
PHP Robusto com Zend Framework - Jaime Neto
12. Zend_Tool
RAD e Tooling
Rapidez para montar a estrutura do projeto
Nada de manipular a árvore de diretórios
Via linha de comando
Zend_Db
Zend_Db_Table
Utiliza o padrão Table Data Gateway
Rapidez para criar classes de acesso ao Banco de dados
Não é preciso definir todos os atributos da tabela nas classes
Zend_Db_Select
Praticidade na criação de consultas de consultas SQL
Conhecendo o Zend Framework - Jaime Neto
13. Zend_Config
Facilidade na criação de arquivos de configuração
INI
XML
JSON
YAML
PHP (Array)
Zend_Form
Facilidade na criação e manutenção de formulários
Elements
Filters
Validators
Decorators
Sub-forms
Conhecendo o Zend Framework - Jaime Neto
14. Zend_Navigation
Praticidade na criação de menús e breadcrumbs
Zend_Route
Criação de rotas alternativas
Exemplo: /titulo-do-post em vez de /postagens/exibir/id/1
Zend_Log
Guardar os logs de acesso em:
Arquivo
Banco de dados
Mock (Array)
Conhecendo o Zend Framework - Jaime Neto
15. Zend_Paginator
Criar paginação para listagens de forma prática
Zend_Search_Lucene
Inserir busca por conteúdo
Zend_Cache
Melhorar a performance do sistema
File
Memcached
APC
Conhecendo o Zend Framework - Jaime Neto
16. Zend_Feed
Criar página de RSS
Zend_Test
Criar testes unitários para a aplicação, junto ao PHPUnit
Zend_Acl
Definir permissões para os recursos da aplicação para
diferentes tipos de usuários
Role
Resource
Privilege
E muito mais...
Conhecendo o Zend Framework - Jaime Neto
17. Classe de
acesso ao banco
de dados
<?php
class Application_Model_DbTable_Usuario extends Zend_Db_Table_Abstract
{
protected $_name = 'usuario';
protected $_primary = 'id';
}
Conhecendo o Zend Framework - Jaime Neto
18. class PostagensController extends Zend_Controller_Action
{
/* Outros métodos do controlador */
public function comentarAction()
{
$form = new Application_Form_Comentario();
$form->setAction('postagens/comentar’);
$this->view->form = $form;
}
}
application/views/scripts/postagens/comentar.phtml
<div>Escreva um comentário</div>
<?php echo $this->form ?>
Conhecendo o Zend Framework - Jaime Neto
19. O que mudou?
Baseado no PHP versão 5.3
Performance melhorada
Uma camada MVC dirigida por eventos totalmente reescrita
EventManager, para sistemas controlados por eventos
Novo sistema de gerenciamento de módulos
Uma nova camada de visão, para responder de forma
adequada de acordo com o tipo de requisição
(HTML, JSON, etc)
Suporte a injeção de dependência (Dependency Injection)
Namespaces
Conhecendo o Zend Framework - Jaime Neto
20. Só pra ter uma idéia... Namespaces
no ZF2
namespace ExemploController;
use ZendMvcControllerActionController,
ZendViewModelViewModel;
// Antes era Exemplo_HelloController extends Zend_Controller_Action_Abstract
class HelloController extends ActionController {
public function worldAction() {
$message = $this->getRequest()->query()->get('message', 'foo');
return new ViewModel(array('message' => $message));
}
}
Conhecendo o Zend Framework - Jaime Neto
21. Motivos SIM
A versão 2.0 é muito recente
Suporte, fóruns e informações para dúvidas em geral ainda é escassa
para ZF2, e muito extensa para ZF1
Muitas empresas ainda trabalham com ZF1
Existem poucas aplicações atualmente com ZF2
É pouco provável que aplicações feitas em ZF1 migrem para ZF2 tão
cedo
Ainda existe grande necessidade de profissionais que trabalham
com ZF1 no mercado
Ainda não existe prova de certificação para o ZF2
Conhecendo o Zend Framework - Jaime Neto
22. Versão cobrada:
1.5.3
Tópicos para estudar:
http://www.zend.com/services/certification/framework/
Onde fazer a prova:
http://www.pearsonvue.com/vtclocator/
Em João Pessoa: Faculdade iDEZ
Conhecendo o Zend Framework - Jaime Neto