CakePHP - criando helpers
Friday, 03 - 10 - 2008
Posted by Rafael Dx7 at 16:34
em muitos casos é necessario replicar o mesmo trecho de código nas views de um projeto. assim acaba-se criando uma repetição desnecessária de código. para resolver esse tipo de problema existem os helpers.
helpers são componentes semelhante a classes que possuem métodos que executam alguma tarefa e devolvem um pedaço de código como resposta. esses métodos podem ser usados nas views de um projeto, evitando a repetição de código. o melhor benefício da centralizaçào de funcionalidades é facilitar a manutenção do código.
o CakePHP facilita bastante o trabalho fornecendo vários helpers e permitindo que outros sejam criados rapidamente.
18 tools and a hair, por slambo_42, sob aCreative Commons
Criando um Helper
um helper consiste em apenas um arquivo que fica na pasta /app/views/helpers/. apesar de estar na pasta das views (acho que deveria estar em outro lugar), o código do helper é formado por uma classe PHP que possui métodos que manipulam o que vc quiser e devolvem uma resposta para a view.
como um exemplo, vamos criar um helper para resolver o seguinte problema: todas as páginas de um site precisam ter um certo banner, que não ficará no topo ou rodapé das páginas, mas em meio ao seu conteúdo. e a imagem desse banner poderá mudar às vezes.
por mais que seja super simples fazer isso no próprio html, poderemos criar um helper que nos forneça o código desse banner. em todas as páginas que precisarmos dele usaremos o helper. caso haja alteração futura, simplesmente alteraremos o helper.
como vc pode ver, criamos um arquivo - /app/views/helpers/banner.php. uma classe que herda de AppHelper - class BannerHelper extends AppHelper. um método simples - show(). dentro desse método retornamos o resultado do método output(), que é responsável por passar os dados que receber para a view.
Usando o novo Helper
para usar o novo helper, declare-o no controller:
na view é só chamar:
Aumentando as Possibilidades
dentro do helper que vc acabou de criar, é possível usar qualquer outro helper. basta declará-lo, assim como foi feito no controller do exemplo acima.
vamos incrementar o helper que acabamos de criar. acrescentaremos um link à imagem. pra isso usaremos o HtmlHelper do próprio cake.
agora o banner ficou mais completo com um código simples. temos o caminho da imagem e a url. usamos o HtmlHelper do Cake pra montarmos o link do banner. pra poder usar o HtmlHelper apenas o declaramos logo no início da classe. depois colocamos o banner dentro de uma div. além disso recebemos um parâmetro que será a classe css do link. depois retornamos tudo através do output.
essa técnica pode ajudar bastante na organização do código do projeto.
Back
