In Symfony, wie kann ich die url_for Helfer in einer Klasse verwenden?
-
13-09-2019 - |
Frage
Ich baue eine URL innerhalb einer Klasse, und ich möchte in der Lage sein, später das Routing bei Bedarf zu ändern, indem nur die routing.yml Datei zu ändern.
Wenn ich die Strecke:
userSignup:
url: /user/signup
param: { module: user, action: signup }
Wie kann ich die url_for ( 'userSignup') Helfer in einer Klasse, um dynamisch die URL zu erstellen?
Lösung
Sie brauchen nicht die Ansicht Helfer in Ihrer Aktion zu verwenden, um eine URL zu erstellen:
$this->generateUrl("userSignup");
Das Verfahren ist definiert in sfComponent.class.php . Dies ist der empfohlene Weg, nicht die Hacky Abhilfe der Ansicht Helfer des Ladens und Verwendung.
Andere Tipps
Ich habe versucht, dies nur mit 1.2, so kann ich nicht alle früheren Versionen sprechen ...
Von jedem Ihrer Klassen:
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
... dann können Sie auch weiterhin mit in der URL-Helfer definiert eine der Funktionen verwendet wird.
Sie verwenden sollten,
sfLoader::loadHelpers(array('Url'));
Sie sollten nicht verwenden sfContext::getInstance()
die zum Abrufen Konfiguration.
// instead of using
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
// use
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));