conhecendo o zend framework

24
Jaime Neto [email protected] Conhecendo o

Upload: jaime-neto

Post on 16-Jan-2015

2.221 views

Category:

Technology


3 download

DESCRIPTION

Palestra sobre Zend Framework apresentada na VIII Semana da Computação na UFPB em João Pessoa/PB no dia 26 de Novembro de 2012.

TRANSCRIPT

Page 1: Conhecendo o Zend Framework

Jaime [email protected]

Conhecendo o

Page 2: Conhecendo o Zend Framework

Tecnólogo em Telemática (CEFET-PB) Especialista em Desenvolvimento para Web

(UNIBRATEC) Analista e desenvolvedor do Analista e desenvolvedor da Ponto-R

ComunicaçãoTrabalho com PHP desde 2004 Trabalho com Zend Framework desde 2007 Parte da equipe dos grupos PHP-PB e ZF-PB

Sobre mim

Conhecendo o Zend Framework - Jaime Neto

Page 3: Conhecendo o Zend Framework

Principais Framewoks PHPSobre o Zend FrameworkQuem usaComponentesEstrutura da aplicação (sugestão)O que mais o ZF me oferece?ExemplosE o ZF2?Veja também...Perguntas

Sumário

Conhecendo o Zend Framework - Jaime Neto

Page 4: Conhecendo o Zend Framework

Conhecendo o Zend Framework - Jaime Neto

Principais frameworks PHP

Page 5: Conhecendo o Zend Framework

Principais frameworks PHP

Os 7 Frameworks PHP mais populares em 2011

Zend FrameworkCodeIgniterSymfonyYiiKohanaPradoCackePHP

Conhecendo o Zend Framework - Jaime Neto

Fonte: php-developer.org

Page 6: Conhecendo o Zend Framework

Desenvolvido pela Zend Technologies

Sobre o Zend Framework

Conhecendo o Zend Framework - Jaime Neto

Page 7: Conhecendo o Zend Framework

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.3http://zendframework.com

Sobre o Zend Framework

Conhecendo o Zend Framework - Jaime Neto

Page 8: Conhecendo o Zend Framework

Totalmente orientado a objetosUtiliza bastante padrões de projeto (design

patterns)Fracamente acoplado (“Preferir plugar a herdar”)Não impõe regras de desenvolvimento ou estruturaPode ser usado como uma biblioteca de classesEnorme variedade de componentesUtiliza reescrita de url por padrãoComunidade enormeCurva de aprendizado lenta

Sobre o Zend Framework

Conhecendo o Zend Framework - Jaime Neto

Page 9: Conhecendo o Zend Framework

Quem usa?

Conhecendo o Zend Framework - Jaime Neto

Page 10: Conhecendo o Zend Framework

Componentes

Conhecendo o Zend Framework - Jaime Neto

Page 11: Conhecendo o Zend Framework

PHP Robusto com Zend Framework - Jaime Neto

Estrutura da aplicação (sugestão)

AplicaçãoConfiguraçõesRegras de negócio (Model)

Acesso ao banco de dadosEstruturas de controle (Controller)Arquivos de template (View)Formulários

DocumentaçãoBibliotecasArquivos de acesso público

ImagensFolhas de estilo Javascript

Casos de teste

Page 12: Conhecendo o Zend Framework

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_DbZend_Db_Table

Utiliza o padrão Table Data GatewayRapidez para criar classes de acesso ao Banco de dadosNão é preciso definir todos os atributos da tabela nas classes

Zend_Db_Select Praticidade na criação de consultas de consultas SQL

O que mais o ZF me oferece?

Conhecendo o Zend Framework - Jaime Neto

Page 13: Conhecendo o Zend Framework

Zend_Config Facilidade na criação de arquivos de configuração

INI XML JSON YAML PHP (Array)

Zend_FormFacilidade na criação e manutenção de formulários

ElementsFiltersValidatorsDecoratorsSub-forms

O que mais o ZF me oferece?

Conhecendo o Zend Framework - Jaime Neto

Page 14: Conhecendo o Zend Framework

Zend_NavigationPraticidade na criação de menús e breadcrumbs

Zend_RouteCriação de rotas alternativas

Exemplo: /titulo-do-post em vez de /postagens/exibir/id/1

Zend_LogGuardar os logs de acesso em:

ArquivoBanco de dadosMock (Array)

O que mais o ZF me oferece?

Conhecendo o Zend Framework - Jaime Neto

Page 15: Conhecendo o Zend Framework

Zend_PaginatorCriar paginação para listagens de forma prática

Zend_Search_LuceneInserir busca por conteúdo

Zend_CacheMelhorar a performance do sistema

FileMemcachedAPC

O que mais o ZF me oferece?

Conhecendo o Zend Framework - Jaime Neto

Page 16: Conhecendo o Zend Framework

Zend_Feed Criar página de RSS

Zend_TestCriar testes unitários para a aplicação, junto ao PHPUnit

Zend_AclDefinir permissões para os recursos da aplicação para

diferentes tipos de usuáriosRoleResourcePrivilege

E muito mais...

O que mais o ZF me oferece?

Conhecendo o Zend Framework - Jaime Neto

Page 17: Conhecendo o Zend Framework

<?php

class Application_Model_DbTable_Usuario extends Zend_Db_Table_Abstract

{

protected $_name = 'usuario';

protected $_primary = 'id';

}

ExemplosClasse de acesso ao banco de

dados

Conhecendo o Zend Framework - Jaime Neto

Page 18: Conhecendo o Zend Framework

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;

}

}

Controladores e visões

<div>Escreva um comentário</div><?php echo $this->form ?>

application/views/scripts/postagens/comentar.phtml

Conhecendo o Zend Framework - Jaime Neto

Page 19: Conhecendo o Zend Framework

O que mudou?Baseado no PHP versão 5.3Performance melhoradaUma camada MVC dirigida por eventos totalmente

reescritaEventManager, para sistemas controlados por eventosNovo sistema de gerenciamento de módulosUma 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

E o ZF2?

Conhecendo o Zend Framework - Jaime Neto

Page 20: Conhecendo o Zend Framework

Só pra ter uma idéia...

E o ZF2?

namespace Exemplo\Controller;

use Zend\Mvc\Controller\ActionController, Zend\View\Model\ViewModel;

// 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)); }}

Namespacesno ZF2

Conhecendo o Zend Framework - Jaime Neto

Page 21: Conhecendo o Zend Framework

Motivos 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

Ainda vale a pena aprender ZF1?

SIM

Conhecendo o Zend Framework - Jaime Neto

Page 22: Conhecendo o Zend Framework

Certificação

Conhecendo o Zend Framework - Jaime Neto

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

Page 23: Conhecendo o Zend Framework

zendframework.com/manual zend-framework-examples.blogspot.com.br forum.imasters.com.br/topic/220186-zend-framework blog.giovannicandido.com/category/php/zend-framework akrabat.com

php-pb.net/sua-escolha

blog.jaimeneto.com/category/zend-framework https://github.com/jaimeneto

Veja também...Links úteis

Conhecendo o Zend Framework - Jaime Neto

Page 24: Conhecendo o Zend Framework

Jaime [email protected]

@jaimecpn

Perguntas?

Conhecendo o Zend Framework - Jaime Neto