2010-11-09 10 views
5

मुझे कोई जानकारी नहीं है कि इसके लिए कोई तकनीकी शब्द है, इसलिए मुझे Google और न ही इस साइट पर कुछ भी नहीं मिला।एकाधिक फ़ाइलों में PHP सामग्री विभाजित करें

मेरा एक दोस्त जो वर्षों से साइट बना रहा है, और वास्तव में एक उग्रता स्थापित करता है, बल्कि एक अद्वितीय (मेरे लिए) प्रणाली का उपयोग करता है।

वह अपने पृष्ठ को 3 भागों, शीर्षलेख, शरीर और पाद लेख में विभाजित करता है। उन्हें 3 फाइलों में डालता है, और फिर शीर्षक और शरीर पेज में पाद लेख भी शामिल है, केवल इस छोड़ने: (उदाहरण)

<?php include_once "Constants/Header.php"; ?> 

     <div id="Container"> 
      <div id="Header"> 
       HEADER 
      </div> 

      <div id="Menu"> 
       <ul id="Nav"> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
        <li>Menu item</li> 
       </ul> 
      </div> 

      <div id="Body"> 

      </div> 
     </div> 

<?php include_once "Constants/Footer.php"; ?> 

यह अच्छा इस तरह से एक साइट कोड करने के लिए अभ्यास है? - तो, ​​क्यों? और आखिरी लेकिन कम से कम नहीं, क्या आप अपने पृष्ठों को इस तरह से कोड करते हैं?

+0

कुछ मानकीकृत पृष्ठों की रेखाओं के साथ कुछ। मेरे पास एक समान सवाल है- यह सोचकर कि क्या इस प्रक्रिया के लिए कोई नकारात्मक दुष्प्रभाव है, कहें, अगर हेडर.एफपी में टैग है, और footer.php में टैग है? –

उत्तर

4

जैसा कि कई अन्य लोगों ने उल्लेख किया है, आपके कोड को कई PHP फ़ाइलों में विभाजित करने से आप अपने काम को अनावश्यक रूप से डुप्लिकेट करने में मदद कर सकते हैं। हालांकि, इससे भी बड़ा लाभ यह हो सकता है कि include कथन प्रदान करने का प्रवेश द्वार है Model-View-Controller जैसे साइटवाइड आर्किटेक्चर को कार्यान्वित करना।
एमवीसी का उपयोग करके, आपका कोड केवल उस पृष्ठ के उन हिस्सों के संदर्भ में विभाजित नहीं होता है जो उपयोगकर्ता देखता है (हेडर, पाद लेख, शरीर, आदि), लेकिन जिम्मेदारी के मामले में भी। उच्च स्तर पर, "मॉडल" डेटा और व्यावसायिक तर्क का प्रबंधन करता है, "व्यू" उपयोगकर्ता इंटरफ़ेस (मॉडल से डेटा प्रस्तुत करने सहित) को संभालता है, और "नियंत्रक" मॉडल के उचित भागों के साथ अनुरोधों को संभालता है और इंटरैक्ट करता है।
मैं किसी भी माध्यम से एमवीसी पर कोई विशेषज्ञ नहीं हूं, लेकिन यहां लाभ बहुत अधिक हैं। प्रत्येक घटकों का व्यक्तिगत रूप से परीक्षण किया जा सकता है। घटकों को "ढीले युग्मित" होने के लिए डिजाइन करना आपको खुद को दोहराने से बचने में मदद करता है और पुन: प्रयोज्य कोड लिखने को प्रोत्साहित करता है। कई PHP web application frameworks हैं जो एमवीसी आर्किटेक्चर का उपयोग करते हैं, जिनमें से कई स्वतंत्र रूप से उपलब्ध हैं (उदाहरण के लिए, CodeIgniter)।
मान्य रूप से, एमवीसी अनिवार्य रूप से "एक सच्चा तरीका" नहीं है - आपके मित्र के मामले में, इस तरह की एक वास्तुकला को लागू करना वह जो करना चाहता है उसके दायरे से बाहर हो सकता है। लेकिन आपके मूल प्रश्न के संबंध में (मुझे लगता है कि एक चौराहे के प्रकार में), include कथन (जब सही तरीके से उपयोग किया जाता है) एक बहुत शक्तिशाली और उपयोगी उपकरण हो सकता है।

+0

धन्यवाद, मैं उत्तर के रूप में एक और टिप्पणी लेने वाला था। लेकिन यह सिर्फ इतना पूरा लगता है, क्षमा करें। लिंक के लिए धन्यवाद, और उत्तर का जवाब। सामग्री को गतिशील बनाने के लिए मुझे याद दिलाने के लिए – Nick

3

include का उपयोग करने के लिए यह आपके लिए उपयोगी है (आपके लिए डेवलपर और आपके उत्तराधिकारी के रूप में) और अपनी PHP फ़ाइलों को विभाजित करें। इस तरह, यदि आपको पाद लेख बदलने की आवश्यकता है, उदाहरण के लिए, आपको केवल एक पाद लेख फ़ाइल को बदलना होगा, और परिवर्तन साइट-व्यापी परिलक्षित होते हैं।

और हाँ, मैं हमेशा include का उपयोग करता हूं।

+0

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

2

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

आपके मेनू में भविष्य के जोड़ों को केवल एक बार जोड़ा जाना चाहिए और प्रत्येक पृष्ठ परिवर्तन को देखता है।

1

ठीक है, यह PHP में एक सुंदर मूल तकनीकी है। यह आपको हेडर या पाद लेख को एक स्थान पर संशोधित करने और साइट के प्रत्येक पृष्ठ में संशोधित करने की अनुमति देता है।

इसका उपयोग उससे अधिक उद्देश्य के लिए किया जा सकता है।

1

यह अच्छा नहीं है, न बुरा है।

आप जो करना चाहते हैं उस पर निर्भर करता है। यदि आप वेबपृष्ठों के सीमित सेट के रूप में सरल-से-सीमित सेट चाहते हैं, तो यह काफी अच्छा है। जब आप प्रत्येक पृष्ठ के लिए एक अलग स्टाइलशीट चाहते हैं तो समस्याएं दिखने लगती हैं।फिर कुछ पेज एक स्क्रिप्ट का उपयोग करते हैं, अन्य में एक और स्क्रिप्ट शामिल होती है। इन मामलों में, शीर्षलेख पृष्ठ से पृष्ठ में भिन्न होंगे (वे वही हो सकते हैं, लेकिन उन फ़ाइलों को शामिल करना एक बुरा अभ्यास है जिसका आप उपयोग नहीं कर रहे हैं)।

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

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

2

यह अच्छा लेकिन सामान्य अभ्यास नहीं है। थोड़ा बेहतर होगा 3 फाइलें, हेडर के लिए एक, एक पाद लेख के लिए, और फिर एक (आमतौर पर: index.php) जिसमें हेडर, पाद लेख और सामग्री शामिल होगी।

<?php 
$active_page = $_GET['page']; 
require_once('header.php'); 
require_once($active_page); 
require_once('footer.php'); 
?> 
+0

http://mysite.com/index.php?page=index.php – AlexanderMP

+0

+1। – Nick

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