Eu sempre fui muito fã do helper placeholder para a Zend_View. Vou dar alguns exemplos de uso:
No arquivo de layout, você tem um lugar para mensagem:
<div> <h1>Você está em: <?php echo $this->placeholder('atual'); ?></h1> </div>
No seu controller, você alteraria da seguinte forma:
public function indexAction(){ $this->view->placeholder('atual')->set('Home'); } public function cadastroAction(){ $this->view->placeholder('atual')->set('Cadastro'); }
Nada de diferente até aÃ, poderia ser usado com uma varÃavel apenas. Mas a vantagem mesmo é poder alterar o conteúdo pela view, como neste exemplo, onde no arquivo de layout haveria uma sidebar caso o conteúdo não apresentasse uma:
<?php // recupera o conteudo do placeholder $sidebar = $this->placeholder('sidebar')->getValue(); // verifica se algo foi escrito if(empty($sidebar)): ?> <!-- sidebar padrao --> <ul> <li>Foo</li> <li>Bar</li> <li>Duh</li> </ul> <?php else: // escreve o conteudo do placeholder echo $this->placeholder('sidebar'); endif; ?>
A partir daà em qualquer view é possÃvel alterá-la. Num arquivo .phtml qualquer:
<?php $this->placeholder('sidebar')->captureStart(); ?> <h4>Minha sidebar</h4> <ul> <li>Outra</li> <li>Info</li> <li>Aqui</li> </ul> <?php $this->placeholder('sidebar')->captureEnd(); ?>
Uma excelente vantagem em usar o captureStart e o captureEnd é poder estruturar o HTML com a IDE, não necessariamente uma string no código.
Vários placehoders padrões são utilizados no projeto, muitos para definição do cabeçalho HTML, como doctype, headScript (javascripts), headTitle (excelente ajuda) e headLink (arquivos CSS).
É isso.
0 Comments.