में संग्रह प्रारंभ करने का उपयोग क्या है मैं सिम्फनी के साथ सिद्धांत का उपयोग कर रहा हूं और इकाई जनरेटर इकाई के कन्स्ट्रक्टर में संग्रह प्रारंभ करता है। उदाहरण के लिए:कन्स्ट्रक्टर
/**
* @var MyProject\MyBundle\Entity\Foo
*
* @ORM\ManyToMany(targetEntity="MyProject\MyBundle\Entity\Foo")
*/
private $foos;
public function __construct() {
$this->foos = new \Doctrine\Common\Collections\ArrayCollection();
}
और मैं Doctrine's best practices कि ... यह एक अच्छा अभ्यास ऐसा करने के लिए है में पढ़ सकते हैं।
लेकिन सवाल यह है: ब्याज क्या है?
अगर मैं इस लाइन को कन्स्ट्रक्टर में हटा देता हूं तो मुझे कोई बदलाव नहीं दिखता है। मुझे लगता है कि यह आलसी लोड हो गया है, लेकिन कन्स्ट्रक्टर लिखने के लिए समय निकालने के लिए काफी महत्वपूर्ण प्रदर्शन ड्रॉप है (app/console doctrine:generate:entities
कमांड कन्स्ट्रक्टर को नए एरे कोलेक्शन के साथ फ़ीड नहीं करता है अगर कन्स्ट्रक्टर पहले से मौजूद है, तो मुझे इसे मैन्युअल रूप से करना है)।
और यदि यह वास्तव में करना बेहतर है, तो क्या मुझे इसे सभी संबंधों के लिए करना चाहिए या केवल nullable=false
एक करना चाहिए?
Wheel
(नल नहीं) और Passenger
(नल) के साथ OneToMany साथ OneToMany में इकाई Car
कल्पना कीजिए। क्या मुझे केवल $wheels
या दोनों प्रारंभ करना चाहिए? और क्यों ?
मान लीजिए कि आपकी इकाई का उपयोग करने वाले क्लाइंट को शून्य तत्वों के लिए गिनती के बजाय शून्य मान की जांच करनी चाहिए, और कुछ अन्य सिद्धांत सामग्री और व्यवहार जिन्हें मैं अनदेखा करता हूं .... – Matteo