ich die Datei /vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.phpWas ist die „richtige“ Weg, um eine symfony Erweiterung von einem anderen Bündel
Es lädt außer Kraft setzen müssen außer Kraft setzen der Zweig getAssetUrl aus dem Bündel der Zweig Funktion ‚Vermögenswert‘
/**
* Returns a list of functions to add to the existing list.
*
* @return array An array of functions
*/
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('asset', array($this, 'getAssetUrl')),
new \Twig_SimpleFunction('assets_version', array($this, 'getAssetsVersion')),
);
}
I außer Kraft setzen wollen, den Vermögenswert() Zweig Funktion ohne sie zu berühren die Core-Dateien verwenden, die sonst durch die nächste symfony Update überschrieben würden
Statt die Service-Definition duplizieren Sie auch den Parameter twig.extension.assets.class einfach einstellen können, dass die neue Erweiterungsklasse zu zeigen. Aber der Compiler-Durchlauf ist wirklich die beste Lösung. Tatsächlich stelle ich die Notwendigkeit einer Änderung von getAssertUrl überhaupt in Frage. Wahrscheinlich wird es mehr Probleme verursachen als es wert ist, besonders wenn Sie Vorlagen von Drittanbietern verwenden. Denken Sie nur daran, Ihre eigene Erweiterung und Funktion zu schreiben. – Cerad
Ja, das stimmt. Sie können auch den Parameter twig.extension.assets.class mit einer benutzerdefinierten Erweiterung festlegen. Die Frage war klar - wie man Asset() überschreibt, ohne den Symfony-Code zu berühren. Ich habe wirklich keine Ahnung von Use-Case, warum user3531149 es braucht. – kba
Ihre Lösung ist in Ordnung. Hoffentlich ist das keine weitere Fahrt vorbei. – Cerad