2009-12-12 11 views
5

मैं ज़ेंड फ्रेमवर्क में सामान्य PHP टेम्पलेट्स के बजाय एक्सएमएल फाइलों और एक्सएसएल स्टाइलशीट का उपयोग करने की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए, हालांकि।ज़ेंड फ्रेमवर्क और एक्सएमएल/एक्सएसएलटी एकीकरण

क्या मैं अब तक क्या करने की कोशिश की है:

    बजाय .phtml विचारों का
  • मैं .xsl स्टाइलशीट का उपयोग
  • मैं .xml लेआउट का उपयोग

यहाँ है कि मैं क्या में क्या है प्रत्येक नियंत्रक के init() विधि:

$this->view->xmlStylesheet = '/../application/modules/default/views/scripts/' 
. $this->_request->getControllerName() . '/' 
. $this->_request->getActionName() . '.xsl'; 

कौन सा मेरे जैसे एक पथ देता है:

012,
/../application/modules/default/views/scripts/index/index.xsl 

मेरे लेआउट इस तरह दिखता है:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="<?php echo $this->escape($this->xmlStylesheet); ?>"?> 
<page> 
    <header></header> 
    <content></content> 
    <footer></footer> 
</page> 

और विचारों उदाहरण के लिए इस तरह दिखेगा:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://www.w3.org/1999/xhtml"> 

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" 
     media-type="application/xhtml+xml" encoding="iso-8859-1" 
     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> 

    <xsl:template match="/"> 
     <html> 
      <head> 
       <title>Hello World</title> 
       <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1"/> 
      </head> 
      <body> 
       <xsl:apply-templates/> 
      </body> 
     </html> 
    </xsl:template> 

</xsl:stylesheet> 

मैं ब्राउज़र (Firefox) में क्या मिलता है, हालांकि सिर्फ एक खाली पृष्ठ है इस तरह के स्रोत के साथ, उदाहरण के लिए:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="/../application/modules/default/views/scripts/index/index.xsl"?> 
<page> 
    <header></header> 
    <content></content> 
    <footer></footer> 
</page> 

क्या कोई मुझे बाहर एलपी? ध्यान में रखें कि मैं एक एक्सएमएल शुरुआती हूं इसलिए मैं सीखना शुरू कर रहा हूं कि इसका प्रभावी ढंग से उपयोग कैसे करें।

"Zend Framework: XSL and self-serializing Views" (पास्कल Opitz)

उत्तर

6

यहाँ कैसे एक कस्टम Zend_View वर्ग XSLT का उपयोग करता है रेंडर करने के लिए बनाने के लिए पर एक लेख है , XML और XSL/XSLT:

http://www.contentwithstyle.co.uk/content/zend-framework-xsl-and-self-serializing-views/

+0

धन्यवाद। क्या कभी-कभी भविष्य में आधिकारिक जेडएफ रिलीज में एक्सएसएलटी के लिए समर्थन शामिल करने की कुछ योजना है? –

+0

एक्सएसएलटी जेडएफ 2.0 के लिए रोडमैप पर प्रतीत नहीं होता है: http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Roadmap –

+0

इसके अलावा मुझे कोई सुविधा अनुरोध नहीं मिला है एक्सएसएलटी का उपयोग अपने अंक ट्रैकर में दृश्यों में करना। मुझे लगता है कि अधिकांश जेडएफ उपयोगकर्ता और डेवलपर इस सुविधा को पसंद नहीं करेंगे (भले ही एक्सएसएलटी अक्सर PHP स्क्रिप्ट से प्रस्तुत करने के लिए बहुत तेज़ है)। –

0

यहाँ कुछ विकल्पों के साथ एक अच्छा ट्यूटोरियल PHP साथ HTML इंजन लागू करने के लिए है:

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