03 FebTestando a integração do Jquery com o Zend Framework

Desde a versão 1.7.0 do Zend Framework, está disponível o suporte a Jquery como uma alternativa à integração do Dojo Toolkit existente.

Atualmente o Jquery pode ser integrado em sua aplicação por três maneiras diferentes:

  • View helper para ajudar a configurar o ambiente do jquery (incluir o script basicamente)
  • Helpers do  Zend_view especifícos para o Jquery
  • Elementos específicos para o Zend_Form

É essa integração com o Zend_form que vamos ver agora.

OBS:  Sempre lembrando que a pasta ZendX se encontra dento de extras/librarys no zip do zendframework mais recente (versão full)

Instalando
Levando em consideração que você já possui o ZF rodando, baixe o jquery e um tema para o ui do jquery (http://ui.jquery.com/themeroller/). Descompacte os dois pacotes dentro de sua pasta js em public. No meu caso ficou assim:

public/js/jquery/
public/js/jqueryui/

Configurando o view
Com os arquivos em seus devidos lugares, devemos agora configurar nosso view para jogar os comandos jquery. Notem que é igual a configuração do dojo, algumas coisas eu tentei sem olhar a documentação, somente por já conhecer a integração com o dojo.

teste.phtml

<?php
if ($this->jquery()->isEnabled()){

$this->jquery()->setLocalPath('/js/jquery/jquery.js')->setUiLocalPath('/js/jqueryui/jquery.ui.all.js')->addStylesheet('/js/jqueryui/theme/ui.all.css');
}

echo $this->jquery();

?>

Agora, vamos partir para o controller. É aqui que iremos pegar o form (que será criado mais adiante) e inseri-lo no template.

testeController.php

<?php

class TesteController extends Zend_Controller_Action
{
protected $_form;

public function init()
{
ZendX_JQuery::enableView($this->view);
}

public function getForm()
{

$formid = 'fteste';
$this->_form = new TestejqueryForm(array(
'action' => '/teste/salvar',
'method' => 'post',
'id' => $formid,
));
}
return $this->_form;
}

public function indexAction()
{
$this->view->form = $this->getForm();

}
}

O form propriamente dito:

Fjquery.php

<?php
class TestejqueryForm extends ZendX_JQuery_Form
{
public function __construct($options=null)
{
parent::__construct($options);

$campo = $this->createElement('DatePicker', 'data_nasc');
$campo->addValidator('NotEmpty')
->addValidator('StringLength', true, array(1,10))
->setJQueryParam('dateFormat', 'dd/mm/yy')
->setRequired(true)
->setLabel('Data de nascimento');
$this->addElement($campo);

$campo = $this->createElement('Slider', 'teste_slider');
$campo->addValidator('NotEmpty')
->setJQueryParams(array('defaultValue' => '75'))
->setRequired(true)
->setLabel('Jquery Slider');
$this->addElement($campo);

}
}

E por fim, de um echo do form no seu view

   <?php echo $this->form ?>

Esse é o resultado dos códigos acima:

zendx_jquery

zendx_jquery

Conclusão

Com certeza o ZendX_JQuery tem muito a evoluir. Ao menos no quesito form, ele esta muito crú. Nem de perto possuí todas as funcionalidades que a integração com o dojo proporciona. Mas devo confessar que não li sobre o motivo dessa integração e nem seus objetivos. Talvez o lance principal esteja nos helpers mesmo, para facilitar o uso apenas.

Na screen que eu tirei, percebe-se que o calendário e o slider se fundem, quando o calendário deveria sobrepor os outros elementos. Outro problema é um erro que o firebug acusa sempre que eu tento trabalhar com o slider. Cada vez que vou arrastar o ponteiro ele da o erro, dizendo que não possui uma função chamada. Isso ocorreu também com os elementos “AutoComplete” e “Spinner”, mas esses infelizmente nem chegaram a aparecer na tela. Não sei responder se acabei fazendo algo errado com esses elementos ou se é um problema na integração. Se alguém teve mais sorte que eu, agradeceria as explicações.

Resumindo tudo. Ainda fico com o Dojo. Possui mais opções de elementos e uma integração muito mais concreta. Próximo teste no Jquery com ZF só daqui algumas boas atualizações!

^^



Posts relacionados:

  1. Integrando o Zend Framework com o Dojo – Parte III Dando continuidade a nossa integração, vamos dar uma rapida olhada...
  2. Integrando o Zend Framework com o Dojo – Parte II Nessa segunda parte do tutorial, vou exemplificar um form utilizando...
  3. Integrando o Zend Framework com o Dojo Bom, como me bati um pouco para achar boas informações...

5 Comentários para “Testando a integração do Jquery com o Zend Framework”

  1. Nossa, eu realmente ando por fora desses trequinhos. hahahaha

    Só fui descobrir a existência do dojo, aqui. Mas o pouco que mexi com jquery, achei deveras divertido.

  2. JQuery é muito legal. Eu gosto dele. Só não gostei dessa integração com o Zend. Meio simples demais (mas pode ser porque ainda está no começo). O Dojo faz todo tipo de validação no zend_fom no lado do cliente, tudo isso automagicamente, possui também muito mais componentes para uso. Mas por outro lado, se você não pretende integrar ele com o form, pode ser bem útil, de certa forma ele abstrai o código jquery com os helps do ZF.

    A minha idéia agora é esperar e ver o que terá de novo nas próximas versões.

  3. Pedro says:

    Um ano depois será que vc ainda tem a mesma opinião sobre estar muito crú?
    O zend form ainda eu desisti, muita complicação para pouca coisa mas tenho encontrado umas coisas boas com jquery

  4. Olá Pedro!

    Olha, devo dizer que ainda não testei novamente a integração. Mas pelo jeito já está na hora de fazer novos testes.

    Hoje em dia eu utilizo O Zend_Form em conjunto com o Jquery, mas essa integração eu estou fazendo manualmente ainda.

    Abraços.

Deixe o seu Comentário

Por favor complete os campos em baixo.
Nome
Email
Website
Comentário
SEO Powered by Platinum SEO from Techblissonline