2008-08-30 19 views
11

PHP के साथ विकास करते समय प्रदर्शन पृष्ठों से कोड को निकालने का एक अच्छा तरीका क्या है। अक्सर जिन पृष्ठों पर मैं काम करता हूं उन्हें बाहरी व्यक्ति द्वारा संपादित करने की आवश्यकता होती है। इस व्यक्ति को अक्सर PHP के कई ब्लॉक द्वारा भ्रमित किया जाता है, और यह भी मेरे कोड को तोड़ना पसंद करता है।PHP सर्वोत्तम प्रथाओं?

मैंने कोड के ब्लॉक को ब्लॉक में ले जाने का प्रयास किया है, इसलिए अब पूरे HTML में फ़ंक्शन फैले हुए हैं। चूंकि कुछ पेज अधिक जटिल हो जाते हैं, यह फिर से एक प्रोग्राम बन जाता है, और प्रोसेस प्रोसेसिंग संदिग्ध हैं।

मैं अपने PHP विकास में बेहतर क्या कर सकता हूं?

उत्तर

19

आपको टेम्पलेट करने के लिए "सिस्टम" की आवश्यकता नहीं है। प्रस्तुति & तर्क को अलग करके आप इसे अपने आप कर सकते हैं। इस तरह डिज़ाइनर डिस्प्ले को खराब कर सकता है, लेकिन इसके पीछे तर्क नहीं।

<html> 
<body> 
<?php foreach($people as $name):?> 
    <b>Person:</b> <?=$name?> <br /> 
<?php endforeach;?> 
</body> 
</html> 
+0

डिजाइनर अभी भी कुछ भी पेंच कर सकते हैं, जब तक आप जगह में कुछ उपाय है। जबकि मुझे विशेष रूप से Smarty पसंद नहीं है, तो फ़ंक्शन या पूरी तरह से PHP उपयोग फ़ंक्शन को प्रतिबंधित करने की इसकी क्षमता एक अच्छा उदाहरण है। लेकिन यह सच है कि यदि आप डिज़ाइन को अलग करते हैं तो कम से कम डिज़ाइनर का काम आसान होगा। –

0

इस विषय पर बहुत कुछ कहा जा सकता है लेकिन एक बहुत ही बुनियादी प्रारंभिक बिंदु अलग-अलग फाइलों में जितना संभव हो उतना कोड ले जाना होगा और फिर कथन शामिल करना होगा।

5

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

0

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

इस तरह
$userName = "John Doe"; 
$dateOfBirth = "04/02/1982"; 

function calculateUserAgeFromBirth($userName, $dateOfBirth) 

नामकरण चर भी टिप्पणियों के बारे में क्या अपने कोड वास्तव में करता है कम से कम मदद मिलती है।

2

क्या बाहरी व्यक्ति को तर्क संपादित करने की आवश्यकता है, या केवल प्रदर्शन (HTML)?

यदि यह बाद का मामला है, तो Smarty टेम्पलेट इंजन देखें।

1

मुझे लगता है कि मैं एक unweildy से दूर रहना चाहते हैं:

<?php 
$people = array('derek','joel','jeff'); 
$people[0] = 'martin'; // all your logic goes here 
include 'templates/people.php'; 
?> 

अब यहाँ people.php फ़ाइल (जो आप अपने डिजाइनर दे) है:

यहाँ एक सरल उदाहरण है ढांचा। बस कुछ दृष्टिकोण मैं उपयोग कर सकता हूं जो आमतौर पर पृष्ठों को क्लीनर कोड के साथ अधिक पठनीय बनाता है।

स्टैक ओवरफ़्लो चाहता है कि मैं यह तय करना चाहता हूं कि कौन सा उत्तर सबसे अच्छा है, जब सबसे अच्छा व्यक्तिपरक राय है। कौन कहता है कि 'सर्वश्रेष्ठ' अभ्यास क्या है।

1

यदि आप फ़ंक्शंस का उपयोग जारी रखने का निर्णय लेते हैं, तो आप वर्डप्रेस से कुछ प्रेरणा प्राप्त कर सकते हैं। आप शायद टेम्पलेट को अधिक बारीक बनाकर "प्रोग्राम" को कम से कम कम कर सकते हैं।

इसके अलावा, अच्छे उपकरण (यानी HTML संपादक) डिज़ाइनर को आपके PHP को अनदेखा करने और कोड को तोड़ने के बिना डिज़ाइन पर काम करने में सहायता कर सकते हैं। (लेकिन मुझे कोई सुझाव नहीं है, क्षमा करें।)

कुछ चीजों का दूसरा तरीका SMARTY के बजाय स्वयं का टेम्पलेट सिस्टम बनाना है, लेकिन संभवतया आपकी आवश्यकताओं को पूरा करने के लिए एक कार्य प्रणाली बनाने में बहुत अधिक समय लगेगा जो कि %% VARIABLE% एक पाठ के साथ%।

हमारी कंपनी SMARTY का उपयोग करता है और यहां तक ​​कि टेम्पलेट्स में कोड का एक बहुत कुछ के साथ, डिजाइनर कैसे इसके साथ काम पता है। सरल सीएमएस साइटों के लिए हम ExpressionEngine का उपयोग करते हैं, जो टेम्पलेट्स में तर्क डालने के लिए HTML- टैग का उपयोग करता है।

4

यह मेरे लिए लगता है कि आप को लागू करने के लिए क्या के रूप में अपने आवेदन आम तौर पर भर में "चिंताओं की जुदाई" में जाना जाता है शुरू करने के लिए की जरूरत है। उदाहरण कोड लोग आपके कोड को तोड़ने वाले पेज संपादकों के बारे में आपकी विशिष्ट शिकायत के जवाब में टेम्पलेटिंग के बारे में बताते हैं, लेकिन महत्वपूर्ण हैं, लेकिन इस रणनीति के केवल एक उदाहरण का प्रतिनिधित्व करते हैं। चूंकि आपका प्रोग्राम बड़ा और अधिक जटिल हो जाता है, इसलिए इसे संशोधित करना और डीबग करना मुश्किल हो जाता है - भले ही आपका डिज़ाइनर आपके कोड को तोड़ नहीं रहा हो।

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

आपके विवरण से, ऐसा लगता है कि आपके पास अभी Transaction Script पैटर्न है, जहां आपके पास ब्राउज़र में लोड की गई एक php फ़ाइल "doesis.php" है, और प्रदर्शन के लिए सभी फ़ंक्शन परिभाषाएं और HTML एक साथ हैं । आपके पास पहले से ही फ़ंक्शन हैं, इसलिए आप तर्क के टुकड़ों को समाहित करना शुरू कर चुके हैं।

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

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

इस बिंदु पर आपका "doesis.php" कुछ कॉन्फ़िगरेशन कोड (जिसे आप शामिल करने के लिए अलग कर सकते हैं, और कुछ प्रमाणीकरण कोड (जिसे आप अपनी कक्षा में अलग कर सकते हैं) पर छीन लिया गया है, और है केवल डेटा एक्सेस फ़ंक्शंस को कॉल करना और शामिल टेम्पलेट फ़ाइल को कॉल करना।

2

मैं PHP In Action पुस्तक पढ़ने की अत्यधिक अनुशंसा करता हूं। यह आपको अपने डेटाबेस कनेक्शन, टेम्पलेट सिस्टम को सारणीबद्ध करने के माध्यम से ले जाता है और सभी एक वेब अनुप्रयोग के अन्य मूल बातें। हर पीएचपी डेवलपर इस पुस्तक को पढ़ने तो भाषा एक बेहतर प्रतिष्ठा के लिए होगा।

इसमें रीफैक्टरिंग, यूनिट परीक्षण और एमवीसी नियंत्रण पैटर्न पर अध्याय भी हैं।

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