मैं फ़ाइल /vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php"सही" जिस तरह से एक और बंडल से एक सिम्फोनी विस्तार
यह लोड करता है ओवरराइड करने के लिए की जरूरत है ओवरराइड करने के लिए क्या है बंडल से टहनी getAssetUrl कोर फ़ाइलें, जो अन्यथा अगले सिम्फोनी अद्यतन द्वारा ओवरराइड किया जाएगा बिना छुए टहनी समारोह 'संपत्ति'
/**
* 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')),
);
}
का उपयोग कर रहा परिसंपत्ति() टहनी समारोह ओवरराइड करना चाहते
इसके बजाय सेवा परिभाषा आप भी सिर्फ नया विस्तार वर्ग के लिए बात करने के लिए पैरामीटर twig.extension.assets.class सेट कर सकते हैं डुप्लिकेट करने की। लेकिन कंपाइलर पास वास्तव में सबसे अच्छा समाधान है। असल में, मैं getAssertUrl को बदलने की आवश्यकता पर सवाल उठाता हूं। संभवतः यदि आप किसी तीसरे पक्ष के टेम्पलेट का उपयोग कर रहे हैं तो इसके लायक होने की तुलना में अधिक परेशानी होगी। बस अपना खुद का विस्तार और कार्य लिखने पर विचार करें। – Cerad
हां, यह सच है। आप कस्टम एक्सटेंशन के साथ पैरामीटर twig.extension.assets.class भी सेट कर सकते हैं। सवाल स्पष्ट था - सिम्फनी कोड को छूए बिना संपत्ति() को ओवरराइड कैसे करें। मुझे वास्तव में उपयोग के मामले के बारे में कोई जानकारी नहीं है क्यों उपयोगकर्ता 3531149 को इसकी आवश्यकता है। – kba
आपका समाधान ठीक है। उम्मीद है कि यह एक और ड्राइव नहीं है। – Cerad