2011-10-03 14 views
13

मैं वास्तव में मैक्रोज़ और के बीच अंतर को समझ नहीं सकता है Twig में शामिल है: दोनों एक ही सामान करते हैं, जो कुछ चर लेता है और कुछ आउटपुट करता है।ट्विग मैक्रोज़ वीएस में शामिल हैं?

क्या अंतर है और आप मैक्रो का उपयोग क्यों करते हैं या शामिल करते हैं?

उत्तर

16

साथ में, आप एक संपूर्ण टेम्पलेट, वर्बैटिम शामिल करेंगे। उस टेम्पलेट में वर्तमान में किसी भी टेम्पलेट चर के लिए स्कोप में पहुंच होगी।

मैक्रो के साथ, आप टहनी भीतर समारोह का एक प्रकार (है, जो अन्य आवेदन तर्क, बस टेम्पलेट्स में पारित कर दिया डेटा नहीं उपयोग कर सकते हैं एक टहनी समारोह के साथ भ्रमित होने की नहीं) है कि उचित वस्तुओं को देखते हुए एक विशेष घटक प्रदान कर सकते हैं परिभाषित कर रहे हैं। तो आपके पास एक शॉपिंग सूची प्रस्तुत करने के लिए एक मैक्रो हो सकता है, जो एक पैरामीटर सूची के रूप में खरीदारी सूची लेता है - और फिर आप इस मैक्रो का पुन: उपयोग कर सकते हैं बिना चिंता किए कि क्या आप डेटा को टेम्पलेट में कहीं और उसी तरह से पारित करेंगे या नहीं। स्पष्ट रूप से मैक्रो में पारित वेरिएबल उस मैक्रो के दायरे में नहीं होंगे।

एक मैक्रो को कुछ डेटा लेने और पुन: प्रयोज्य घटक प्रस्तुत करने के लिए वास्तव में एक विशिष्ट कार्य करना चाहिए। एक शामिल चीजों में से किसी भी हिस्से में शामिल हो सकते हैं - यह आपके लिए बहुत अधिक है। ब्लिग टेम्पलेट्स जिस तरह से काम करते हैं, एक्स्टेंसिबल प्रकृति, स्मार्टी जैसी किसी चीज के विपरीत, इसका मतलब है कि आपके पास उपयोग करने की संभावना कम है, डिज़ाइन द्वारा - लेकिन अभी भी ऐसे मामलों का उपयोग किया जा सकता है जहां यह आपके टेम्पलेट्स में डुप्लिकेशंस से बचने का सबसे आसान तरीका होगा ।

+6

** टेम्पलेट के बारे में भाग में वर्तमान में किसी भी टेम्पलेट चर के लिए पहुंच होगी ** वर्तमान में सही नहीं है। आप कर सकते हैं: '{% '' custom_var 'के साथ' template.html.twig 'शामिल करें: custom_value} केवल%}' जो टेम्पलेट को मूल संदर्भ तक पहुंचने से रोक देगा। इससे 'मैक्रो' के समान ही 'शामिल' कार्यक्षमता मिल जाएगी, मुख्य अंतर यह है कि उन्हें कैसे घोषित किया जाता है और इनका उपयोग किया जाता है। – Karolis

2

मैं सिम्फनी 2 के लिए नया हूं, लेकिन मुझे लगता है कि ट्विग मैक्रो और इसमें शामिल अंतर निम्न है।

में शामिल हैं: पृष्ठ में सामान्य भागों को परिभाषित करने के लिए प्रयुक्त, जैसे हेडर, साइडबार या स्लॉट।

मैक्रो: दृश्य से संबंधित कार्यों को परिभाषित करने के लिए प्रयुक्त, जैसे पेजिनेशन।

संबंधित मुद्दे