मैं थोड़ी देर के लिए PHP में विकास कर रहा हूं लेकिन हाल ही में केवल एक ओओपी दृष्टिकोण पर स्विच कर दिया गया है।ओओपी सर्वोत्तम व्यवहार (विशेष रूप से PHP)
एक सवाल है कि मेरे लिए ऊपर फसल रहता है 'कितनी दूर', OOP सामान के साथ जाने के लिए विशेष रूप से स्मृति संसाधनों आदि
उदाहरण के लिए निष्पादन की गति के मामले में, मान लीजिए कि मैं 2 वस्तुओं डालते हैं, उपयोगकर्ता और लिस्टिंग
लिस्टिंग हमेशा एक व्यक्तिगत उपयोगकर्ता से जुड़ी हुई हैं। UserId लिस्टिंग की एक संपत्ति है, इसलिए मुझे पता है कि यह किस उपयोगकर्ता से संबंधित है। एक समय में, एक लिस्टिंग विधि के भीतर मुझे संबंधित उपयोगकर्ता की एक ही संपत्ति तक पहुंचने की आवश्यकता है।
जहां तक मैं देख सकता हूं (कृपया सलाह दें अगर नहीं) मेरे पास इसे पूरा करने के लिए 3 विकल्प हैं।
एक नया उपयोगकर्ता वस्तु बना सकते हैं और उपयोगकर्ता $ के माध्यम से प्रासंगिक प्रॉपर्टी का उपयोग -> theProperty
आवश्यक संपत्ति लिस्टिंग की एक स्थानीय संपत्ति बनाने और इस पॉप्युलेट जब लिस्टिंग initialised है (उदाहरण के लिए एक एसक्यूएल के माध्यम से शामिल होने के)
क्वेरी डेटाबेस सीधे उपयोगकर्ता की संपत्ति यूजर आईडी के माध्यम से आवश्यक पुनः प्राप्त करने के
यह प्रतीत मुझे यह विकल्प है कि विकल्प 1 & 2 ओओपी नियमों द्वारा अधिक कठोर रूप से बाध्य होते हैं, लेकिन 1 संपत्ति को पुनर्प्राप्त करने के लिए पूरी ऑब्जेक्ट को प्रारंभ करने के कारण प्रदर्शन हिट होती है। विकल्प 3 कम से कम स्मृति गहन होगा लेकिन पूरी तरह से ओओपी को हटा देगा।
इसके अलावा, सृजन पर आबादी वाले वस्तुओं के संदर्भ में, मेरी अधिकांश वस्तुओं को प्रारंभिक होने के तुरंत बाद एक 'भरने' विधि के माध्यम से अपनी अधिकांश संपत्तियां मिलती हैं (इसलिए केवल 1 डीबी क्वेरी की आवश्यकता होती है)। क्या इसे आम तौर पर सर्वोत्तम अभ्यास माना जाएगा, या इन गुणों को प्राप्त करने के लिए अलग-अलग तरीकों का उपयोग करने के लिए और अधिक सलाह दी जाएगी, जब उन्हें आवश्यकता हो और पॉप्युलेट किया जाए?
मुझे एहसास है कि इसके लिए "सही" जवाब नहीं हो सकते हैं, लेकिन क्या कोई इस स्थिति तक पहुंचने के सर्वोत्तम तरीकों पर सलाह दे सकता है?
बहुत धन्यवाद निक
आप एक में गिर सकते हैं (1 + 2) उपयोगकर्ता के बारे में सबकुछ प्राप्त करते हैं जैसे ही वे लॉगिन करते हैं (लॉगिन मानते हैं), इसे पॉप्युलेट करते हैं, और इसे ऑब्जेक्ट के रूप में स्टोर करते हैं, फिर बस इसे चारों ओर रखें जब तक वे लॉग आउट नहीं करते हैं तब तक वस्तु को नष्ट कर दें। मुझे लगता है कि मैं इस पर कैसे जाना होगा। – robx
जब तक आप इन तीन दृष्टिकोणों का प्रोफाइल नहीं करते हैं और पाते हैं कि कोई व्यक्ति प्रदर्शन में बाधा डाल रहा है, तो आपको स्मृति की खपत या प्रसंस्करण की गति के बारे में परेशान नहीं होना चाहिए। बस काम करता है कि क्या काम करता है। – Gordon
उपयोगकर्ता ऑब्जेक्ट के बजाय उपयोगकर्ता ऑब्जेक्ट को प्रविष्टि ऑब्जेक्ट की संपत्ति बनाने के बारे में कैसे? – prasopes