2012-08-13 6 views
6

मैं एक सिम्फनी 2 प्रोजेक्ट में एक इकाई के साथ इसका उपयोग करने के लिए एक रिपोजिटरी बना रहा हूं, लेकिन मुझे नहीं पता कि कक्षा को कहां स्टोर करना है। मैं इंटरनेट पर शोध कर रहा हूं लेकिन मुझे रिपोजिटरीज को स्टोर करने के लिए डिफ़ॉल्ट नामस्थान डिफ़ॉल्ट फ़ोल्डर के बारे में कोई जानकारी नहीं है।Symfony2 रिपोजिटरी मानक फ़ोल्डर या नामस्थान

मैं "लगता है कि" कर सकता है दो दृष्टिकोण में:

  1. उपयोग इकाई फ़ोल्डर: (इकाई और entityRepository एक ही फ़ोल्डर में)

    /परियोजना/बंडल/संस्था;

  2. उपयोग भंडार फ़ोल्डर: (भंडार में इकाई फ़ोल्डर और भंडार में इकाई)

    /परियोजना/बंडल/संस्था; /परियोजना/इकाई/भंडार;

इसके बारे में कोई मानक है?

उत्तर

3

आप उन्हें जहां भी चाहें स्टोर कर सकते हैं, लेकिन सरकारी Symfony book का उपयोग करता

एक्मे/DemoBundle/भंडार/

तो मुझे लगता है यह अधिक मानक तरीका

+0

आप सभी में हैं! धन्यवाद :) – unairoldan

+1

क्या यह अभी भी सच है। मैं इसे वर्तमान या पिछले पुस्तक संस्करणों पर नहीं देखता हूं। – d0001

+3

यह अब आधिकारिक सिम्फनी तरीका नहीं है। जैसा कि यहां देखा जा सकता है: http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes आप "Acme/DemoBundle" के बजाय "Acme/DemoBundle/Entity" फ़ोल्डर का उपयोग करेंगे/रिपोजिटरी/" –

0

अब मैं सिम्फनी 2 के साथ ब्लॉग बनाने के बारे में एक ट्यूटोरियल पढ़ रहा हूं और वहां उनके पास एक रिपोजिटरी निर्देशिका है जहां सभी रिपोजिटरी क्लासेस इस तरह स्टोर करते हैं: src/Blogger/Blogbundle/रिपोजिटरी/BlogRepository.php मैं डॉन ' टी पता है कि यह सबसे अच्छा समाधान है, लेकिन उम्मीद है कि यह मदद करता है। आप ट्यूटोरियल पर एक नज़र करना चाहते हैं - यह यहाँ है - http://tutorial.symblog.co.uk/docs/extending-the-model-blog-comments.html

1

यदि किसी भी तरह सिम्फनी को आपकी रिपॉजिटरी नहीं मिलेगी, तो आप विशिष्ट भंडार नामस्थान श्रेणी को परिभाषित करने के लिए इकाई वर्ग में एनोटेशन का उपयोग कर सकते हैं (उदाहरण के लिए: "Acme \ DemoBundle \ Entity \ Repository \ MyEntityRepository") इस तरह:

use Doctrine\ORM\Mapping as ORM; 

/** 
*@ORM\Entity(repositoryClass="Acme\DemoBundle\Entity\Repository\MyEntityRepository") 
*/ 
class MyEntity { ... } 

शायद इसे वाईएमएल, एक्सएमएल या PHP के माध्यम से परिभाषित किया जा सकता है लेकिन मैं इकाइयों में एनोटेशन का उपयोग करता हूं।

0

बंदर में एक नापनेवाला के जरिए बधाई देने के बिना, सिद्धांत इकाई जनरेटर इकाई फ़ोल्डर में भंडार वर्गों बनाता है:

php app/console doctrine:generate:entity

निकाय:

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Test 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="AppBundle\Entity\TestRepository") 
*/ 
class Test 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 
} 

भंडार:

namespace AppBundle\Entity; 

use Doctrine\ORM\EntityRepository; 

/** 
* TestRepository 
* 
* This class was generated by the Doctrine ORM. Add your own custom 
* repository methods below. 
*/ 
class TestRepository extends EntityRepository 
{ 
} 
+1

क्या आप जानते हैं कि आपने इकाई और भंडार के तहत दो बार एक ही चीज़ जोड़ा है? – userfuser