प्रोपेल Peer
कक्षाओं का उपयोग करता है, औरविधियों के साथ वास्तविक वस्तु को प्रदूषित किए बिना, संबंधित वस्तुओं और ऑब्जेक्ट गुणों में हेरफेर करने के तरीके के रूप में सिद्धांत Table
कक्षाओं का उपयोग किया जाता है।लार्वेल (एलोक्वेंट) टेबल || पीयर समकक्ष
लार्वेल (वाक्प्रचार) दस्तावेज़ों की सरसरी नज़र के बाद, मुझे ऐसा कुछ भी नहीं देखा जो वही Peer
या Table
कार्यक्षमता की तरह प्रदान करता है। मेरा सवाल है, क्या लार्वेल (या बोलने वाला) इस तरह के वर्गों के लिए नामस्थान प्रदान करता है, या क्या मैं सिर्फ Table
का उपयोग करता हूं और ऑटोलोडर को बाकी की देखभाल करने देता हूं?
// Example use of a table class in doctrine 1.2
$user = UserTable::getInstance()->findById(1);
- अपडेट 1 -
कैसे एक सिद्धांत तालिका वर्ग इस्तेमाल किया जा सकता कालेमैन उदाहरण:
class UserTable
{
public static function getInstance()
{
return Doctrine_Core::getTable('User');
}
public function linkFoo($userId, array $foos)
{
$user = $this->findById($userId);
foreach ($foos as $foo) {
$user->foo = $foo;
$user->save();
}
}
}
// SomeController.php
executeSaveFoo()
{
UserTable::getInstance()->linkFoo($this->getUser(), array('foo1', 'foo2'));
}
सिद्धांत तालिका वर्ग के उद्देश्य के एक API प्रदान करना है संबंधित वस्तुओं के खिलाफ कार्रवाइयों के लिए जो नियंत्रक में नहीं होना चाहिए, उपर्युक्त उदाहरण में linkFoo
कक्षा संबंधित उपयोगकर्ता ऑब्जेक्ट को प्रदान की गई लिंक को लिंक करेगी।
मुझे लगता है कि ऑब्जेक्ट्स और 'टेबल' कक्षाओं के बीच अलगाव महत्वपूर्ण है, क्योंकि किसी ऑब्जेक्ट को यह नहीं पता होना चाहिए कि कैसे तुरंत चालू किया जाए और न ही हाइड्रेट करें।
आप क्या ऊपर अपने उदाहरण सिद्ध या वास्तव में क्या यह कर रहा है व्याख्या कर सकते हैं? – aethergy
भाषण के साथ आप केवल एक वर्ग प्रति मॉडल (और आमतौर पर डेटाबेस तालिका) रखते हैं लेकिन आपको इसे किसी भी चीज़ के साथ "प्रदूषित" करने की आवश्यकता नहीं है। कृपया दस्तावेज़ीकरण पढ़ें और/या स्पष्ट करें कि आपकी समस्या क्या है। – lukasgeiter
मैंने इसे 'कुछ भी' के साथ प्रदूषित नहीं किया, मैं 'स्थैतिक' विधियों के बारे में विशिष्ट था। क्या उपर्युक्त उदाहरण के अनुसार ऑब्जेक्ट को पास करने के लिए यह समझ में आता है? –