मैं सिम्फनी 2.3 का उपयोग कर रहा हूं और मेरे प्रोफाइलर में ट्विग से संबंधित डेप्रिसिएशन चेतावनी है। जैसे कि:

DEPRECATION - Using "replace" with character by character replacement is deprecated 
and will be removed in Twig 2.0

और |replace टैग अभी भी Twig प्रलेखन का हिस्सा लगता है, इसलिए मैं इस चेतावनी से कैसे निपटूं, इस पर थोड़ा भ्रमित हूं।

इसके अलावा, मुझे तीसरे पक्ष के बंडलों से भी इसी तरह की डेप्रिसिएशन चेतावनी मिलती है जो मैं उपयोग करता हूं।

  • क्या इसे ठीक करने का एक आसान तरीका है?
  • अगर मैं 2.3 से 2.7 में अपग्रेड करता हूं, तो क्या यह एक समस्या है?
4
CôteViande 24 नवम्बर 2015, 13:21

2 जवाब

सबसे बढ़िया उत्तर

टहनी में फ़ंक्शन को बदलने के लिए आपको तर्क पास करने का तरीका बदलना होगा:

  • इससे पहले: {{str | बदलें ('ए', 'बी')}}
  • अब: {{str | बदलें ({'a': 'b'})}}

पहले यह दो तर्क था, अब यह एक सरणी है।

आप कोड स्रोत में देख सकते हैं कि यह प्रतिस्थापित नहीं है twig_replace_filter फ़ंक्शन wich पदावनत है लेकिन इसे कॉल करने का केवल एक तरीका है: https://github.com/twigphp/Twig/blob/1.x/lib/Twig/Extension/Core.php#L534

ध्यान दें कि टहनी डॉक्टर सही उदाहरण प्रदर्शित करते हैं: http://twig.sensiolabs.org/doc/filters/replace.html

7
Remy Mellet 5 जिंदा 2016, 16:06

वास्तव में, इसे ठीक करने का एकमात्र तरीका यह है कि आपके सभी पदावनत कार्यों को बदल दिया जाए।

लेकिन इससे परेशानी तभी होनी चाहिए जब आप अपनी टहनी के बंडल को अपग्रेड करें:

  • यदि आपके composer.json में कोई टैग है तो कम्पोज़र अपडेट जो कि एक संस्करण नहीं है (जैसे "twig/extensions": "1.*",)

  • यदि आप अपने सिम्फनी को एक ऐसे वर्जन के साथ अपग्रेड करते हैं जिसके लिए ट्विग 2.x की आवश्यकता होती है

वास्तव में, यदि आप इस संस्करण पर बने रहते हैं, तो आप इस चेतावनी से प्रभावित नहीं होंगे।

0
Julien Bourdic 24 नवम्बर 2015, 10:42