PHP VS JAVA

Pontos fortes e fracos;

Facilidade, flexibilidade, produtividade, mercado,
conceituação, características, etc...
* Métricas em quantidades de projetos e linhas de código (rede Ohloh)
ZEND
É um framework de aplicação web orientado a
objetos de código aberto, desenvolvido em PHP 5,
que tem como objetivo simplificar o
desenvolvimento web;
 Possui uma arquitetura “use-at-will” (use a
vontade) que permite que os desenvolvedores
utilizem seus componente quando e onde estes
fizerem sentido em sua aplicação, sem requerer
outros componentes;

ZEND

Embora Zend forneça componentes para os
padrões MVC e Table Gateway, não há um
padrão de arquitetura de software que deva ser
seguido por todos os desenvolvedores;
HISTÓRIA

2005


2006




Em março, Zend Framework 1.5.0 é lançado;
Em setembro, Zend_Framework 1.6.0 é lançado;
Em novembro, Zend_Framework 1.7.0 é lançado;
2009



Em julho, Zend Framework 1.0.0 é lançado;
2008


Zend Framework 0.1.0;
2007


Começa a construção em seus meados e no fim do ano é promovida a primeira
ZendCon;
Em abril, Zend_Framework 1.8.0 é lançado;
Em julho, Zend_Framework 1.9.0 é lançado;
2010


Em janeiro, Zend_Framework 1.10.0 é lançado;
Em novembro, Zend_Framework 1.11.0 é lançado;
CARACTERÍSTICAS
Componentes em PHP 5, orientados a objetos;
 Fraco acoplamento entre componentes e
interdependências mínimas;
 Possibilita projetos altamente modulares com
facilidade;
 Implementação MVC;
 Implementação Table Data Gateway;
 Suporte a múltiplos SGBDs: MySQL, Oracle, IBM
DB2, Microsoft SQL Server, PostgreSQL, SQLite, e
Informix Dynamic Server;

CARACTERÍSTICAS
Serviços de autenticação e autorização;
 Filtro de dados e validação para fortalecimento da
segurança da aplicação;
 Gerenciamento de sessão;
 Criação de formulários usando PHP, arquivos de
configuração ou XML;
 Internationalização e localização;
 Comunidade ativa e participante
 Grande incentivo a linguagem PHP 5

ESTRUTURA
COMPONENTES
ZEND E BANCO DE DADOS
Table Data Gateway;
 Conexão de forma transparente;
 Interface padrão independentemente do SGBD
em uso;

 Alterações
no código não são necessárias em caso
de mudança;

Possibilidade extremamente fácil de usar
múltiplos SGBDs e/ou servidores;
ZEND FORM
Simplifica a criação e manipulação de
formulários;
 Fácil re-usabilidade;
 Validação de dados;
 Filtro de dados;
 Modo de uso muito flexível;

ZEND FORM

Zend_Elements;
 text,

textarea, select, checkbox, file, etc;
Zend_Validate;
 Email,
data, tamanho e muitos outros, além de fácil
customização de um;
Zend_Filter;
 Zend_Decorator;

ZEND FORM

Exemplo de uso:
$form = new Zend_Form();
$form->addElement('text‘, ‘nome', array(
‘label’=> ‘Nome:’,
‘style’=> ‘width: 200px;’,
‘class’ => ‘classe_css’,
‘filters’ => array('StringTrim'),
‘validators’ => array('NotEmpty’),
‘decorators’ => array ('ViewHelper')
));
/* Também pode se criar primeiramente um
Zend_Form_Element_Text e então adicionar no form */
I18N NO ZEND

O PHP possui muitos problemas nas suas
soluções de internacionalização;
APIs inconsistentes;
 Sem detecção de linguagem padrão;
 Entre outros;

Zend busca uma forma trivial de permitir que os
desenvolvedores internacionalizem suas
aplicações;
 Zend_Translate é a solução do Zend Framework
para aplicações multilíngües;

ZEND TRANSLATE
Não possui os mesmos problemas do PHP, por
isso o mesmo é recomendado ao invés das
funções nativas do PHP;
 Traduz a saída antes de passar para a view,
assim não é necessário criar uma view para
cada idioma que se deseja traduzir;
 Usado tanto de forma “global” quanto mais
específica com facilidade

ZEND TRANSLATE
Basta um objeto do tipo Zend_Translate ser
adicionado no registry do Zend com a chave
‘Zend_Translate’, e o tradutor é usado
automaticamente de forma “global”;
 Pode lidar com vários adaptadores, são eles:
Array, Csv, Gettext, Ini, Tbx, Tmx, Qt, Xliff,
XmlTm, entre outros;

TMX
Translation Memory eXchange;
 É um padrão XML aberto para
compartilhamento de memória de tradução
criado para tradução assistida e ferramentas
de localização;
 Possui um “banco” de pares de textos fontes e
textos traduzidos;

TMX
<?xml version="1.0" encoding="UTF-8"?>
<tmx version="2.0" xmlns="http://www.lisa.org/tmx20">
<header adminlang="en" creationtool="locale4j" creationtoolversion="1.1" otmf="unknown" segtype="block" srclang="*all*"/>
<body>
<tu tuid="cnpj_not_recognized">
<tuv xml:lang="en">
<seg>CNPJ not recognized.</seg>
</tuv>
<tuv xml:lang="pt">
<seg>CNPJ inválido.</seg>
</tuv>
</tu>
...
ZEND TRANSLATE
Exemplo de uso:
 $tradutor = new Zend_Translate ( 'tmx',
APPLICATION_PATH . '/nls/arquivo.tmx', $lingua );
//tradução de uma string qualquer
$traducao = $tradutor->_($stringChave);
//ou pode ser adicionado em um Zend_Form
$form->setTranslator($tradutor);

I18N EM FORMS
Mensagens de erro de validação;
 Labels de campos e botões;
 Legendas de campos;
 Descrições de forms e campos;
 Valores de elementos Multi-option
(Zend_Form_Element_Multi);
 Basicamente, onde for preciso haver tradução;

FONTES E REFERÊNCIAS
http://framework.zend.com/
 http://www.cin.ufpe.br/~if101/turmaatual/aulas
/aula1/java.html
 http://pt.wikipedia.org/wiki/Java
_(linguagem_de_programação)
 http://pt.wikipedia.org/wiki/PHP
 http://pt.wikipedia.org/wiki/Zend_Framework
 http://meiobit.com/32162/compare-aslinguagens-de-programacao/
 E experiência pessoal.

Download

Zend framework