2010-10-26 21 views
21

मैं कहीं पढ़ रहा था कि PHP एक templating भाषा है। वास्तव में एक templating भाषा क्या है? PHP क्या बनाता है? अन्य templating भाषाओं क्या हैं?एक templating भाषा क्या है?

+0

शब्द मूल रूप से उपयोग के दायरे को परिभाषित करता है। एक templating भाषा एक (पूर्ण) प्रोग्रामिंग भाषा और एक मैक्रो (विस्तार) भाषा के बीच आधे रास्ते गुण है। – mario

उत्तर

18

एक टेम्पलेट भाषा के पीछे आधार यह है कि भाषा किसी अन्य मास्टर दस्तावेज़ के भीतर "एम्बेडेड" है। विशेष रूप से, आपके औसत दस्तावेज़ पर, दस्तावेज़ का कुल आकार टेम्पलेट भाषा की तुलना में अधिकतर दस्तावेज़ स्रोत होता है।

दो काल्पनिक उदाहरणों को देखें:

print "This is a simple document. It has three lines." 
print "On the second line is my name: " + firstName 
print "This is the third line." 

बनाम

This is a simple document. It has three lines. 
On the second line is my name: $firstName 
This is the third line. 

आप पहले उदाहरण में देख सकते हैं, भाषा दस्तावेज़ पाठ गिर्द घूमती है। दूसरे उदाहरण में, दस्तावेज़ टेक्स्ट सबसे प्रचलित है, केवल थोड़ी सी कोड के साथ।

कुछ टेम्पलेट भाषाएं PHP, एएसपी.नेट और जावा के जेएसपी जैसी सामान्य प्रयोजन भाषाओं को पूरी तरह उड़ा दी गई हैं। अन्य विशेष रूप से टेम्पलेटिंग के लिए डिज़ाइन किए गए हैं, जैसे Velocity और FreeMarker (जावा के लिए दोनों उपयोगिताओं)।

माइक्रोसॉफ्ट वर्ड जैसे कई वर्ड प्रोसेसर की अपनी टेम्पलेटिंग क्षमताएं होती हैं, जिन्हें आमतौर पर "मेल मर्ज" कहा जाता है।

7

PHP आवश्यक रूप से एक templating भाषा नहीं है, लेकिन यह जिस तरह से व्याख्या की गई है, उसके कारण यह परीक्षा उत्तीर्ण हो सकती है।

जब PHP फ़ाइल पढ़ी जाती है, केवल PHP ब्लॉक टैग (<?php और ?>) के भीतर कोड को देखा जाता है, बाकी को आउटपुट में पास किया जाता है। इसलिए एक .html फ़ाइल को PHP दुभाषिया द्वारा संसाधित किया जा सकता है, और कुछ भी नहीं होगा, HTML आउटपुट होगा।

यदि HTML फ़ाइल के कुछ क्षेत्रों में PHP टैग और कोड था, तो इसका अर्थ और उन स्थानों में कुछ डेटा आउटपुट की संभावना होगी। इसे एक टेम्पलेट माना जा सकता है। आम तौर पर यह एक आउटपुट परत होने का विचार है, और उसके बाद गतिशील सामग्री है जो इसके साथ जाती है। आपके पास एक उत्पाद पृष्ठ टेम्पलेट हो सकता है, और उसके बाद कुछ इनपुट चर के आधार पर, टेम्पलेट में केवल एक ही उत्पाद विवरण/छवियों/आदि को पॉप्युलेट कर सकते हैं।

PHP के लिए वास्तविक टेम्पलेट इंजन हैं (एक के लिए Smarty .. http://www.smarty.net/) कि आप एक नज़र डाल सकते हैं।

मैं कभी उनके प्रशंसक नहीं रहा हूं, लेकिन बहुत से लोगों को इसके साथ सफलता मिलती है।

9

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

PHP के बारे में: जैसा कि PHP स्वयं HTML में इंटरपोलेट किया जा सकता है, इसे टेम्पलेट भाषा के रूप में उपयोग किया जा सकता है। दूसरी तरफ PHP बहुत वर्बोज़ है, खासकर अगर छोटे टैग सक्षम नहीं हैं।

एक तेज़ और फीचर समृद्ध टेम्पलेट इंजन Twig है। मैं इसे smarty पर सलाह देंगे। यह अधिक सुविधाएं प्रदान करता है (सबसे विशेष रूप से टेम्पलेट विरासत) और तेज़ है।

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