No Symfony, como eu posso usar o url_for ajudante em uma classe?
-
13-09-2019 - |
Pergunta
Eu estou construindo um interior URL de uma classe e eu gostaria de ser capaz de mudar o encaminhamento, se necessário depois apenas mudando o arquivo routing.yml.
Se eu tiver a rota:
userSignup:
url: /user/signup
param: { module: user, action: signup }
Como posso usar o url_for ( 'userSignup') helper em uma classe para criar dinamicamente o URL?
Solução
Você não precisa usar os ajudantes vista em sua ação para gerar uma url:
$this->generateUrl("userSignup");
O método é definido na sfComponent.class.php . Esta é a maneira recomendada, não a solução hacky de carregar os ajudantes vista e usá-los.
Outras dicas
Eu só tentei isso com 1,2 por isso não posso falar em nome de todas as versões anteriores ...
A partir de qualquer de suas classes:
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
... então você pode continuar com o uso de qualquer uma das funções definidas no helper url.
você deve usar
sfLoader::loadHelpers(array('Url'));
Você não deve usar sfContext::getInstance()
para recuperar o configuração.
// instead of using
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
// use
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));