नवीनतम बड़े पैमाने पर परियोजना की वास्तुकला का एक मोटा चित्र, जिसमें मैं शामिल था।
यह केवल एक बुनियादी रूपरेखा, वास्तविक वास्तुकला दस्तावेजों से अनुकूलित और एक तरीका है कि एक जैसा दिखता में प्रस्तुत किया है ठेठ n स्तरीय दृष्टिकोण एक ठेठ के साथ संयुक्त MVC दृष्टिकोण । जैसा कि आप देख सकते हैं कि लॉजिक और डेटा टियर एक सर्विस लेयर के माध्यम से जुड़े हुए हैं, और अधिक विशेष रूप से एक REST API , जो कि अवकाश से ज्ञात PHP फ्रेमवर्क से प्रेरित था ।
पहिया को सुदृढ़ मत करो
मैं तीन रूपरेखाओं के साथ काम करता हूं:
Zend फ्रेमवर्क
एक प्रभावशाली ढंग से लिखे गए कोडबेस और सुविधाओं की व्यापक सूची के साथ, PHP चौखटे का गान । बड़े पैमाने पर अनुप्रयोगों पर आप अपने आप को फ्रेमवर्क को अधिक से अधिक बार ट्विक करेंगे और मुझे जेडएफ के कोडबेस के साथ काम करने के लिए सबसे सुखद लगता है। लेकिन सावधान रहना, यह एक प्रवेश स्तर की रूपरेखा नहीं है ।
Kohana
कोहना कोडइग्निटर के एक कांटे के रूप में शुरू हुआ, और यही कारण था कि मुझे शुरू में इसका इस्तेमाल न करने के लिए पर्याप्त था। आजकल यह एक ठोस और सुरुचिपूर्ण ढांचे में विकसित हो गया है जो एक पदानुक्रमित एमवीसी दृष्टिकोण का पालन करके हर दूसरे से खुद को अलग करता है । एचएमवीसी एमवीसी की तुलना में अधिक मात्रा में संशोधन की अनुमति देता है । आरेख में परियोजना के लिए मैंने कोहाना के HMVC को ZF के लिए अनुकूलित किया, लेकिन मैंने छोटे प्रोजेक्ट के लिए कोहना का उपयोग करना शुरू कर दिया है और इसे बड़े के लिए भी विचार कर रहा हूं।
CodeIgniter
मैं केवल विरासत में मिली परियोजना के कारण इसका उपयोग करता हूं, यदि संभव हो तो बचें।
जैसा कि अन्य उत्तर बताते हैं, एक ORM हमेशा काम आता है। मैं बड़े पैमाने पर Doctrine का उपयोग करता हूं , और आपको CouchDB और MongoDB के लिए इसके ब्रांड नए मैपर्स पर एक नज़र डालनी चाहिए । स्केलेबिलिटी बड़े पैमाने पर अनुप्रयोगों के लिए जरूरी है और आपको NoSQL समाधान का मूल्यांकन करना चाहिए ।
सभी ने कहा, याद रखने वाली महत्वपूर्ण बात यह है कि बड़े अनुप्रयोगों में आमतौर पर अद्वितीय चुनौतियां होती हैं। आपको हर लोकप्रिय थर्ड पार्टी सॉल्यूशन का मूल्यांकन करना चाहिए, और आप शायद कुछ अस्पष्ट लोगों से बहुत कुछ हासिल करेंगे। जब मैंने पहली बार रेसे का मूल्यांकन किया तो यह उत्पादन के लिए तैयार था, लेकिन इसका दृष्टिकोण अनिवार्य रूप से परियोजना में था।
प्रदर्शन
विशिष्ट वेबसाइटों पर आप साधारण आउटपुट कैशिंग और ओपोड कैशिंग के साथ दूर हो सकते हैं, लेकिन बड़े पैमाने पर अनुप्रयोगों पर आपको वास्तव में मेमोरी कैशिंग पर विचार करना चाहिए, जो कि आमतौर पर मेमकेड के आसपास निर्मित होता है ।
xdebug को ज्यादातर डिबगर के रूप में जाना जाता है, लेकिन यह एक प्रोफाइलर के रूप में भी काम कर सकता है । मैंने हाल ही में Zend Server का उपयोग करना शुरू किया है और मैं इसके कोड ट्रेसिंग फीचर्स को बिल्कुल पसंद करता हूं । दुर्भाग्य से वे सामुदायिक संस्करण में उपलब्ध नहीं हैं , लेकिन xdebug एक बहुत ही अच्छा विकल्प है।
यदि आप अपाचे का उपयोग कर रहे हैं, तो सुनिश्चित करें कि इसमें से नरक का अनुकूलन करें । nginx और lighttpd हैं जाहिरा तौर पर बेहतर विकल्प , प्रदर्शन बुद्धिमान, लेकिन मैं उन्हें एक बहुत उपयोग नहीं किया है और मैं वास्तव में नहीं कह सकता।
डेटाबेस के लिए, डॉक्ट्रिन की क्वेरी और परिणाम कैशिंग अद्भुत काम करता है, विशेष रूप से मेमकेड के साथ संयुक्त । और हां, हम फ्रंट एंड के बारे में नहीं भूल सकते। याहू की असाधारण प्रदर्शन टीम ने सर्वोत्तम प्रथाओं की एक विस्तृत सूची को इकट्ठा किया है । मैं वास्तव में एक फ्रंट एंड डेवलपर नहीं हूं, लेकिन मैंने सोलो प्रोजेक्ट पर आश्चर्यजनक परिणाम देखे हैं।
अंत में PHP में एक नया कचरा संग्रह तंत्र है , जो देखने लायक है।
सुरक्षा
PHP सुरक्षा की दुनिया अराजक है, कम से कम कहने के लिए। मैं कोई विशेषज्ञ नहीं हूँ, इसलिए जेनेरिक युक्तियों के रूप में निम्नलिखित व्यवहार करें:
वेब एप्लिकेशन सुरक्षा परियोजना खोलें
वहाँ में बहुत अच्छा सामान है, लेकिन एक त्वरित अवलोकन के लिए आपको शीर्ष दस सूची से शुरू करना चाहिए । और उन सामान्य कमजोरियों के लिए पीएचपी समाधानों पर शोध करें।
ढेर की कमजोरियाँ
एक अच्छी आदत है समय-समय पर PHP के खुले बगों की निगरानी करना । यहां तक कि अगर आप खुद कोई विशेषज्ञ नहीं हैं, तो सुरक्षा खतरों पर लगभग हमेशा वर्कअराउंड टिप्स हैं। और हां, आपको आदत को स्टैक के हर दूसरे हिस्से तक पहुंचाना चाहिए, विशेष रूप से सबसे कमजोर लोगों को, जैसे वेब सर्वर और डेटाबेस।
आईटी सिक्योरिटी स्टैक एक्सचेंज में भीड़ आपको अधिक शिक्षित जवाब देने में मदद कर सकती है।
आगे की पढाई