Estou postando esse pedaço de código aqui pois demorei para achar a solução e quero compartilhar com alguém que estiver com o mesmo problema.
Eu não estava conseguindo enviar email através das tasks do symfony, isso porque a task estava rodando em ambiente test mesmo eu setando o ambiente para PROD no método configure.
Resolvi o problema colocando essas duas linhas de código no início do método execute da minha task.
// Init configuration and access to the DB $configuration = ProjectConfiguration::getApplicationConfiguration($options['application'], $options['env'], true); sfContext::createInstance($configuration);
Um exemplo simples de como carregar helpers em qualquer lib dentro do symfony.
$price = 213.95;
$currency = 'USD';
// carregamos o helper Number
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Number'));
// após carregar o helper temos disponível a função format_currency
$price = format_currency( $price, $currency, 'pt_BR');
Neste post vou mostrar como é possível programar um teste automatizado no symfony para testar se um webservice xml está respondendo. Este teste é útil para recursos que utilizamos ajax e dificilmente testamos se as requisições ajax estão sendo retornadas com sucesso, então esse script pode ser muito útil.
Pessoas que não utilizam testes em seus projetos não conseguem ter a certeza de que todo o projeto continua funcionando desde a última alteração no código fonte. Eu não estou falando daquele teste tosco que fazemos manualmente no momento do desenvolvimento, eu estou falando de teste automatizados.
Automação de teste é utilizado para garantir que não surgiram novos defeitos em componentes já testados, essa técnica de teste é conhecida como Teste de regressão e deve ser executado antes e depois de cada alteração no sistema para checar se houve algum efeito colateral no sistema.
O Symfony por ser um framework de desenvolvimento ágil prove ferramentas boas para automação dos testes, e o melhor, essas ferramentas são bem integradas com o restante do framework.
É uma boa idéia sempre mostrar mensagens específicas para o usuário, e a utilização do referer é uma boa variável para tratarmos se o usuário digitou ou acessou através de um outro site com link errado.
no template você faz a condição:
<?php if( $sf_request->getReferer() != '' ): ?>
A página <?php echo $sf_request->getParameter('page'); ?> fli alterada.
<?php else: ?>
A página <?php echo $sf_request->getParameter('page'); ?> não existe, verifique se você digitou o endereço corretamente.
<?php endif; ?>