मैंने सुना है कि PHP के माध्यम से गतिशील HTML सामग्री को प्रतिध्वनित करना एक बुरा अभ्यास है। लेकिन विकल्प क्या हैं, यदि आपको इसकी आवश्यकता हो, जैसे, f.e. एक वेबसाइट पर एक नेविगेशन मेनू, हर पेज में दोहराया जाता है?

php
1
Arnthor 13 मई 2011, 14:16

5 जवाब

सबसे बढ़िया उत्तर

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

हालांकि, यह वास्तव में सिर्फ एक अमूर्तता है। किसी बिंदु पर PHP को HTML को ब्राउज़र में आउटपुट करना होता है।

इसलिए, गतिशील HTML सामग्री को आउटपुट करना PHP का एक अभिन्न अंग है, लेकिन इसे करने के बदतर और बेहतर तरीके हैं, और echo स्टेटमेंट्स के भीतर हार्ड-कोडिंग HTML स्ट्रिंग्स आमतौर पर इसे करने का सबसे अच्छा तरीका नहीं है। एक टेम्पलेट इंजन का परिचय दें और विचारों और व्यावसायिक तर्क को अलग करें, और आप शायद बेहतर स्थिति में हैं।

4
Håvard S 13 मई 2011, 14:26

PHP के अस्तित्व का यही कारण है।

आपने गलत सुना।

7
Lightness Races in Orbit 13 मई 2011, 14:18

एचटीएमएल के भीतर सामग्री को गूंजने के लिए यह बुरा अभ्यास नहीं है, एचटीएमएल के साथ डेटा के संकलन जैसे कार्यों को करने के लिए यह बुरा अभ्यास है, उदाहरण के लिए:

<?php

$query = mysql_query("SELECT * FROM table");
echo "<tably>"
while($row = mysql_fetch_assoc($query))
{
     ?><tr><td><?php echo $row['item']; ?></td></tr>
}
?>

वह बदसूरत और बुरी प्रथा, आप जो करेंगे वह कुछ इस प्रकार है:

<?php

$data = array();
try
{
    $query = mysql_query("SELECT * FROM table");
    while($row = mysql_fetch_assoc($query))
    {
        $data[] = $row;
    }
}catch(Exception $e)
{
     die("Database Error: " . $e->getMessage());
}

/*
     * Some more queries and logical data stuff.
     * Set headers as well
*/

require("main_template.php");

और फिर मुख्य टेम्पलेट के भीतर:

<table>
     <?php foreach($data as $row): ?>
     <tr>
         <td><?php echo $row['item']; ?></td>
     </tr>
     <?php endforeach;?>
</table>

हम शुरुआत में पेज के लिए आवश्यक डेटा प्राप्त करना पसंद करते हैं, क्योंकि अगर कोई त्रुटि होती है तो हम आपकी सामग्री के आधे रास्ते में त्रुटियों को फेंकने के बजाय एक अच्छा पृष्ठ प्रदर्शित कर सकते हैं और इसी तरह।

4
tintinve 18 जिंदा 2020, 12:31

प्रस्तुति और स्क्रिप्ट को विभाजित करना हमेशा बेहतर होता है, उदाहरण के लिए कोड का उपयोग करने के बजाय ऐसा कुछ

echo "<title>$title</title>";

आप उपयोग कर सकते हैं

<title><?php echo $title; ?></title>

PHP से एचटीएमएल कोड को विभाजित करने पर विचार करें, केवल परिणामों के कुछ सेट को वापस करने के लिए PHP रखें, वास्तविक एचटीएमएल नहीं। इस तरह यह अधिक पठनीय आईएमओ होगा। इससे कोई फर्क नहीं पड़ता कि आप किस तरह अपनाते हैं क्योंकि PHP टेक्स्ट वापस करने के लिए था और यही आप कर रहे हैं।

0
Ibrahim Azhar Armar 13 मई 2011, 14:23

यदि आपके पास मेनू जैसा सामान्य कोड है, तो आप मेनू के लिए कोड को अलग मेनू.php फ़ाइल में डाल सकते हैं, और PHP शामिल स्टेटमेंट का उपयोग करके मेनू कोड का उपयोग कर सकते हैं। यहाँ देखें Php सामान्य मेनू कोड

निश्चित रूप से आपने जो सुना है वह PHP के बारे में सही नहीं है इस लेख को देखें ....

0
DSharper 13 मई 2011, 14:25