O framework symfony, a exemplo do Ruby on Rails, incorpora uma série facilidades para agilizar o desenvolvimento de aplicações web. Uma delas, utilizada especialmente na camada de visão, são os helpers, formados por funções PHP que retornam código HTML e podem ser chamados nos templates através do comando use_helper().
O symfony contém vários helpers para facilitar o processo da construção dos templates. Alguns são intrínsecos, como o helper para a criação dos elementos de um formulário, disponibilizados por default para todos os templates e outros podem ser chamados conforme a conveniência, como, por exemplo, os helpers para internacionalização (i18n), chamada de objetos do banco de dados (object) e funções ajax (javascript).
Helpers disponíveis por default (standard helpers)
- Asset - ajuda na definição da seção <head> além de fornecer chamada fácil para links externos (imagens, JavaScript e arquivos de folha de estilo – CSS)
- Cache - manipulação de cache
- Form - elementos de formulários
- Helper - requerido para inclusão de um helper
- Partial - permite incluir fragmentos de templates
- Tag - tags básicas
- Url - gerenciamento de links and URLs
Helpers que precisam ser declarados nos templates
- DateForm - série de funções para exibição de elementos com datas em formulários
- Date - formatar datas
- Escaping - escape de caracteres
- I18N - internacionalização
- Javascript - funções javascript, ajax
- Number - formatação de números
- ObjectAdmin - objetos para o admin generator
- Object - objetos do banco de dados
- sfRichTextEditor - Rich Text Editor
- sfRichTextEditorFCK - Rich Text Editor FCK
- sfRichTextEditorTinyMCE - Rich Text Editor TinyMCE
- Text - funções relativas ao manuseio de textos
- Validation - validação de dados de um form
Para utilizar um helper não default, basta fazer sua chamada através da função use_helper no início do template:
<?php echo use_helper('NomeDoHelper') ?>
Helpers e Actions
É possível usar as funções de um helper dentro de uma ação (action) com o loadHelpers
sfLoader::loadHelpers($helpers)
onde a variável $helpers é o nome de um helper ou um array com os nomes de vários helpers.
Criando um helper (custom helpers)
Caso possuir pedaços de código que são freqüentemente utilizados em templates e não existem nos helpers do symfony é possível criar o seu próprio helper, o que, aliás, é uma tarefa extremamente simples. Os passos são os seguintes:
- escrever um arquivo PHP com o conjunto de funções do helper, salvando com o nome
FooBarHelper.php, onde FooBar é o nome do helper - gravar o arquivo
FooBarHelper.phpno diretórioapps/myapp/lib/helper/ou em qualquer diretório/helpercriado dentro de um diretório/libdo projeto
Agora é só utilizar seu helper em qualquer template incluindo:
<?php echo use_helper('FooBar') ?>



Parabéns Andréia. Muito bom o seu artigo. Estou aprendendo Symfony agora e acabei chegando até a sua página através do google. Acho que você faz parte do Google Group do Symfony né ?
Diego