मैं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के लिए अपेक्षाकृत नया हूं। मैं अवधारणाओं को काफी समझता हूं, लेकिन व्यावहारिक रूप से बोल रहा हूं, मुझे अपने ज़ेंड फ्रेमवर्क अनुप्रयोगों में मॉडल का सबसे अच्छा उपयोग करने के बारे में जानकारी खोजने में वास्तव में कठिन समय है।ज़ेंड फ्रेमवर्क: मॉडल और दृश्यों का उपयोग, सर्वोत्तम प्रथाओं
विशेष रूप से, मेरे पास एक मॉडल है (जो कुछ भी विस्तार नहीं करता है) जो डेटाबेस तालिका का उपयोग नहीं करता है। यह अपने संरक्षित सदस्यों तक पहुंचने के लिए गेटर्स और सेटर्स का उपयोग करता है। मैं खुद को इस मॉडल को देखने में सबसे अच्छा प्रदर्शन करने के तरीके से जूझ रहा हूं। मैं मेरे विचार टेम्पलेट्स में तर्क नहीं चाहते हैं, लेकिन मैं अपने आप को निम्नलिखित स्थिति में पाते हैं:
मेरी नियंत्रक में:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
मेरे विचार टेम्पलेट में:
<h2><?= $this->object->getName() ?></h2>
मैं डॉन ' वास्तव में मेरे दृश्य टेम्पलेट्स में फ़ंक्शंस कॉल करना पसंद नहीं है लेकिन मुझे ऐसा करने का बेहतर तरीका नहीं पता है। मैं अपने मॉडल के सदस्यों को सार्वजनिक नहीं करना चाहते, लेकिन मैं मूल रूप से एक ही परिणाम हासिल करना चाहते हैं:
<h2><?= $this->object->name ?></h2>
मैं अपने नियंत्रक मॉडल के बारे में सब कुछ पता होने के सभी काम करने के लिए नहीं करना चाहते हैं:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
ज़ेंड फ्रेमवर्क में मॉडल का उपयोग करने का सबसे अच्छा अभ्यास क्या है? क्या कोई भी ऐसे ट्यूटोरियल की सिफारिश कर सकता है जो मुझे ज़ेन फ्रेमवर्क में इस मॉडल/व्यू दुविधा को समझने में मदद करेगा?
यह वास्तव में चीजों को करने का एक खराब तरीका है। न केवल आप सभी गुणों के लिए मनमाने ढंग से पहुंच प्रदान करते हैं, भले ही वे एक हैं (एक) एक फॉर्म से/से क्रमबद्ध होना चाहिए या नहीं, यह मॉडल को मैपिंग की अवधारणा के साथ भी अधिभारित करता है, जिसे वास्तव में पूछा जाता था। – Saem
मॉडल में फॉर्म तर्क डालने से दृश्य और मॉडल मिल जाता है जो कि खराब रूप भी है। और जैसा कि मैंने पहले ही कहा है, डिफ़ॉल्ट व्यवहार को ओवरराइड करना बहुत आसान है और बेवकूफ बॉयलरप्लेट गेटर्स और सेटर्स बनाने की आवश्यकता से बचाता है। –
और यदि आप Zend_Db_Table_Row क्लास को देखते हैं तो आप पाएंगे कि ज़ेंड वास्तव में फ़ील्ड और फ़ील्ड से उनके मूल्यों का पर्दाफाश करने के लिए एक समान सिद्धांत का उपयोग करता है। –