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.