2010-07-14 15 views
5

मैंने क्लोजर में कोडिंग शुरू कर दी है, और मैं वास्तव में Enlive से प्रभावित हूं। एक चीज जिसे मैं वास्तव में इसके बारे में पसंद करता हूं वह यह है कि Enlive केवल HTML टेम्पलेट का उपयोग करता है। तो एक टेम्पलेट एचटीएमएल वाला एक फाइल है, जो एचटीएमएल में समाप्त होता है, उतना आसान है। यह एक डोम पेड़ में पार्स हो जाता है और फिर उस डोम पेड़ को क्लोजर/एनलिव, संयुक्त, गतिशील, आदि द्वारा छेड़छाड़ की जाती है। एचटीएमएल टेम्पलेट फाइलों में कोई वाक्यविन्यास नहीं, एक सुंदर साफ अलगाव।क्या php के लिए कोई HTML-only टेम्पलेट सिस्टम है?

जावास्क्रिप्ट के माध्यम से किए गए एक समान सिस्टम का एक और उदाहरण PURE है।

क्या php में ऐसा कुछ है? या, सामान्य रूप से, केवल HTML-templating करने के किसी भी तरीके?

+1

मैं इसके बारे में भी दर्शन कर रहा हूं। सिद्धांत रूप में आप अपने एप्लिकेशन से सभी एचटीएमएल आउटपुट एकत्र कर सकते हैं, इसे phpQuery में पाइप कर सकते हैं, और उसके बाद शुद्ध सामग्री को इंजेक्ट कर सकते हैं जैसे PURE करता है। सिद्धांत रूप में। – mario

+0

शुद्ध के हैलो वर्ल्ड उदाहरण को आसानी से एक दर्जन लाइनों में डीओएम के साथ पुन: कार्यान्वित किया जा सकता है। हालांकि यह डीओएम प्रश्नों के लिए XPath का उपयोग करेगा। यदि आप एक और मार्कअप भाषा सीखना नहीं चाहते हैं, तो एक्सएसएलटी पर एक नज़र डालें। – Gordon

+0

मुझे लगता है कि गॉर्डन के समान, यदि आप PHP में शुद्ध जैसे कुछ लागू करने के मार्ग पर जाते हैं (जो कि मुश्किल नहीं होना चाहिए), और इसमें कोई डोम इंजन उपलब्ध नहीं है, तो XPATH जाने का तरीका है। शुद्ध जेएसओएन के साथ मेरी एक्सएसएलटी पिछली बैठक में आया था। लेकिन यहां मैं गॉर्डन से असहमत हूं, मैं कुछ भी नहीं के लिए एक्सएसएलटी वापस नहीं जाऊंगा। – Mic

उत्तर

4

Enlive सुनने के लिए उत्सुक। मैं कुछ वर्षों से इस अवधारणा के बारे में सोच रहा हूं और something in PHP को एक साथ हैक किया है जो कुछ सिद्धांत साझा करता है: टेम्पलेट्स शुद्ध HTML हैं, और आप सीएसएस या XPath का उपयोग कर दस्तावेज़ में किसी विशिष्ट नोड को सामग्री को संबोधित करके उन्हें "भरें"।

$t = new Template('yourfile.html'); 
$t->fill('#nav',$someMarkup); 
$t->fill('#header',$otherMarkup); 

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

.col #foot { 
    content: 'foot'; 
} 

#content { 
    content: file_get_contents('pangolin.txt'); 
} 

सामग्री के मान PHP अभिव्यक्ति माना जाता है। PHP को स्थापित करने के लिए कुछ प्रावधान है जो चयनकर्ताओं पर भी लागू होता है।

cssfill.php लिपि (सबसे अच्छा मंगलाचरण शायद ./cssfill.php pangolin.cas pangolin.html है, तो आप cssfill.php के अंदर अपने php दुभाषिया के लिए पथ को बदलने के लिए हो सकता है) टारबॉल में है उसका एक रन ले लो,, उत्पादन पर एक नज़र डालें इनपुट के साथ तुलना फ़ाइलें।

यदि यह पोस्ट आपके विचार में कोई उत्साह उत्पन्न करता है, तो मुझे बताने में संकोच न करें। मैं सोच रहा हूं कि यह एक पागल विचार था या नहीं, अगर यह एक जगह है, अगर ऐसा होता है, तो मुझे इसे एक विचारपूर्वक रिलीज ओपन सोर्स प्रोजेक्ट में बदलने में खुशी होगी क्योंकि इंटरनेट पर यादृच्छिक रूप से टारबॉल के विपरीत।

+0

हाँ, यह वास्तव में करता है। मुझे कोड प्रोजेक्ट को जांचना होगा, 'क्योंकि मुझे लगता है कि यह प्रणाली पारंपरिक टेम्पलेटिंग सिस्टम विधियों से परे एक कोने को वास्तव में बदलती है, क्योंकि केवल एचटीएमएल के साथ शुरू करने के लिए शुद्ध है, जैसा कि आप कभी भी प्राप्त कर सकते हैं, इसलिए आप नहीं कर सकते उस बिंदु से आगे जाओ। आप गिट/गीथब का उपयोग नहीं करते हैं, है ना? यदि आप इसे ओपन सोर्स बनाना चाहते थे, तो मैं निश्चित रूप से कहूंगा कि अगर आपको कोई परिचितता है (मैं प्रोस्टलेटिज़ (एसआईसी) गिट और गीथब पूरे दिन) तो गिटूब इसे रखने के लिए एक अच्छी जगह होगी। वैसे भी, मैं कोड देखता हूं और संपर्क में रहूंगा। – Kzqai

+0

त्चलवाक - एक वर्ष के बाद (और हैकर समाचार पर एक [साइड चर्चा] (http://hackerne.ws/item?id=3339291)) मैंने आखिरकार [गेस्टब पर सीएएसटी] डालने का फैसला किया (https: // github .com/westonc/CAST) - अगर आपको मौका मिलता है, तो खींचने के लिए स्वतंत्र महसूस करें और मुझे बताएं कि आप क्या सोचते हैं! –

+0

क्या करेंगे ......... – Kzqai

1

आप phptal.org देख सकते हैं। यह PHP के लिए एक टेम्पलेट इंजन है जो HTML टैग का उपयोग करता है। लेकिन यह तेज़ नहीं है।

आप अन्य परियोजनाओं को भी देख सकते हैं जैसे twig-project.org चुड़ैल तेज़ तेज़ है।

1

चेकआउट PHPTAL। PHPTAL PHP5 के लिए एक एक्सएमएल/एक्सएचटीएमएल टेम्पलेट लाइब्रेरी है जो संकलित टेम्पलेट्स और जुर्माना कैशिंग प्रदान करता है। टेम्पलेट्स शुद्ध एक्सएमएल/एचटीएमएल मार्कअप में परिभाषित किए गए हैं।

<div class="item" tal:repeat="item itemsArray"> 
    <span tal:condition="item/hasDate" tal:replace="item/getDate"/> 
    <a href="${item/getUrl}" tal:content="item/getTitle"/> 
    <p tal:content="value/getContent"/> 
</div> 
0

मुझे लगता है कि पस्टेट! PHP के लिए टेम्पलेटिंग इंजन बिल्कुल वही है जो आप खोज रहे हैं, यह आपके एचटीएमएल टेम्पलेट को बरकरार रखता है जिससे आप अपने एचटीएमएल का बेहतर उपयोग कर सकते हैं।

यहाँ पूर्ण स्रोत कोड http://github.com/givanz/psttt

+0

कूल, मैं इसे देख लूंगा। – Kzqai

1

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

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