का उपयोग करने के लिए डांसर 2 और टेम्पलेट टूलकिट को कैसे कॉन्फ़िगर कर सकता हूं Template::Stash::AutoEscaping का उपयोग करने के लिए मैं डांसर 2 साइट में टेम्पलेट टूलकिट की डिफ़ॉल्ट कॉन्फ़िगरेशन को कैसे संशोधित करूं?मैं एक अलग स्टैश मॉड्यूल
उत्तर
आप स्पष्ट रूप से पर्ल कोड नहीं लिख सकते हैं जो आपकी कॉन्फ़िगरेशन फ़ाइल में एक नई वस्तु बनाता है। इसके बजाय, मैं डांसर 2 :: टेम्पलेट :: टेम्पलेटटूलकिट क्लास को उप-वर्गीकृत करता हूं, वहां संशोधन करता हूं और उसके बाद इसका उपयोग करता हूं।
आप कोड को देखने या D2::T::TT आप देख सकते हैं कि यह बनाता है और विधि _build_engine
में $tt
वस्तु देता है, तो। यदि आप इसे अपने उप-वर्ग में around
में लपेटते हैं, तो आप इसे पकड़ सकते हैं और परिवर्तन कर सकते हैं।
package Dancer2::Template::TemplateToolkit::AutoEscaping;
use Moo;
use Template::Stash::AutoEscaping;
extends 'Dancer2::Template::TemplateToolkit';
around '_build_engine' => sub {
my $orig = shift;
my $self = shift;
my $tt = $self->$orig(@_);
# replace the stash object
$tt->service->context->{STASH} = Template::Stash::AutoEscaping->new;
return $tt;
};
1;
यह एक बदसूरत हैक का एक सा है और एक वर्ग के आंतरिक भागों में तलाशी में एक अच्छा विचार नहीं है, लेकिन फिर Template::Contextstash
वस्तु को बदलने के लिए एक तरीका प्रदान नहीं करता है। ->stash
विधि केवल एक पाठक है और इसे केवल रनटाइम पर सेट किया जा सकता है।
फिर आप template_toolkit
के बजाय अपनी कॉन्फ़िगरेशन फ़ाइल में अपने नए उप-वर्ग का उपयोग कर सकते हैं।
engines:
template:
TemplateToolkit::AutoEscaping:
start_tag: '<%'
end_tag: '%>'
ध्यान दें कि यह आप ढीला किसी भी विन्यास आप अपने कॉन्फ़िग फ़ाइल में STASH
के लिए जोड़ दिया हो कर देगा। आपको अपने रैपर में कॉन्फ़िगरेशन को स्पष्ट रूप से पकड़ना होगा, STASH
फ़िल्टर करें यदि कोई है और इसे new
पर पास कर दें। मैं इसे पाठक के लिए एक अभ्यास के रूप में छोड़ दूंगा।
- 1. कैसे एक अलग मॉड्यूल
- 2. एक पायथन मॉड्यूल के 2 अलग-अलग उदाहरण प्राप्त करें
- 3. एक अलग मॉड्यूल से ऑटोवायरिंग बीन्स
- 4. गिट शेल्व बनाम स्टैश
- 5. स्टैश: सशर्त सामग्री
- 6. ड्रूपल 6 में एक मॉड्यूल में मैं कई अलग-अलग ब्लॉक कैसे बना सकता हूं?
- 7. Angular2 मॉड्यूल: कैसे मैं एक और मॉड्यूल
- 8. एफ # मॉड्यूल आरंभीकरण पर अलग-अलग व्यवहार
- 9. मैं एक अलग स्कीमा
- 10. एक बहु-मॉड्यूल मेवेन बनाना स्वतंत्र रूप से अलग-अलग मॉड्यूल का निर्माण और रिलीज़ करना?
- 11. एक गिट स्टैश को पूर्ववत करें
- 12. डैगर 2: अलग पुस्तकालय मॉड्यूल
- 13. गिट स्टैश प्रश्न
- 14. गिट स्टैश दो बार
- 15. गिट स्टैश लागू और
- 16. गिट स्टैश: शाखा
- 17. एक अलग कंप्यूटर पर गिट स्टैश पर काम करने का सबसे व्यावहारिक तरीका क्या है?
- 18. मैं एक पर्ल मॉड्यूल कैसे शामिल करूं जो एक अलग निर्देशिका में है?
- 19. अलग-अलग से अलग मॉड्यूल की आवश्यकता है - अलग-अलग जेनरेट - वेबपैक बंडल
- 20. मैं मॉड्यूल
- 21. AngularJS - निर्देश फ़ाइलों को अलग करने, लेकिन एक ही मॉड्यूल
- 22. गिट स्टैश संस्करण लागू करें
- 23. गिट स्टैश कहां संग्रहीत हैं?
- 24. विशिष्ट फ़ाइलों में स्टैश परिवर्तन
- 25. खो गया गिट स्टैश परिवर्तन
- 26. क्या पाइथन एक अलग मॉड्यूल में होना चाहिए?
- 27. थ्रेडिंग मॉड्यूल में एक ही प्रोग्राम अलग आउटपुट
- 28. क्यों प्रकार के लिए एक अलग मॉड्यूल है?
- 29. एचजी शेल्व गिट स्टैश ड्रॉप
- 30. गिट स्टैश और गिट पुल