2011-05-25 19 views
5

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

मैं वर्तमान में अपने प्रोजेक्ट में एमवीसी पैटर्न का उपयोग नहीं करता हूं इसलिए एक दृश्य एक विकल्प नहीं है।

class calendar { 

function __construct(){ 

} 

function output() { 
    print "<table>"; 
    for ($week=0; $week < 4; $week++) { 
     print "<tr>"; 
     for ($day=0; $day < 7; $day++) { 
      print "<td></td>"; 
     } 
     print "</tr>"; 
    } 
    print "</table>"; 
} 

वहाँ किसी भी अन्य तरीकों जो मैं के बारे में जो रखना होगा नहीं सोचा हैं:

मेरे वर्ग फ़ाइलों में कटौती के रूप में निम्नानुसार (इस उदाहरण के लिए मैं मान लिया है कि 1 महीने 4 सप्ताह है) एचटीएमएल कक्षा फ़ाइल से अलग अग्रिम धन्यवाद

+1

कैलेंडर वर्ग को php फ़ाइल (index.php) में शामिल करें, और उपयोग करें: $ cal = new कैलेंडर(); , अब आप यह कर सकते हैं: $ cal-> सप्ताह; (इस पर निर्भर करता है कि आपने कक्षा कैसे लिखी थी), शायद 'print_r ($ cal)' पहले – Ruben

+0

यह प्रश्न एम्बेडेड टैग में फिट नहीं है http://stackoverflow.com/tags/embedded/info देखें। टैग हटाया गया –

+0

शायद यह प्रश्न जांचें: http://stackoverflow.com/questions/62617/whats-the-best-way-to-separate-php-code-and-html?page=1&tab=votes#tab-top – smack

उत्तर

1

आपकी समस्या के लिए एक बहुत ही लोकप्रिय समाधान http://www.smarty.net/ या ऑर्डर टेम्पलेट इंजन का उपयोग करना है ताकि आप अपने प्रेजेंटेशन तर्क को व्यावसायिक तर्क से विभाजित कर सकें।

1

आपके पास कुछ प्रकार का HTML सहायक वर्ग हो सकता है जो आपका कोड उत्पन्न करता है। कक्षा createTable, addRow, closeTable, createForm, addField, आदि .. मुख्य गुण विधि कॉल में भेजे जाते हैं, और स्थिरांक सीधे HTML में कोडित होते हैं।

3

सबसे सरल templating

// myTemplate.phtml 
<div><?php echo $xy; ?></div> 

// SomewhereElse.php 
class MyClass { 
    public function myMethod() { 
    $xy = 'something'; 
    include('myTemplate.phtml'); 
    } 
} 
1

मैं बस एक HTML फ़ाइल लिख सकते हैं और वहाँ प्लेसहोल्डर जाते थे।

<!DOCTYPE HTML> 
<html> 
... 
<?php echo output() ?> 
... 
संबंधित मुद्दे