2012-04-18 13 views
10

मैं अपने सिम्फनी 2 एप्लिकेशन के लिए इकाइयों को उत्पन्न करने की कोशिश कर रहा हूं। संस्थाओं को कई बंडलों (और शायद कई अनुप्रयोगों) द्वारा साझा किया जाएगा, और इस प्रकार मैं नहीं चाहता कि वे एक बंडल से संबंधित हों। मैं उन्हें src/MyApp/Entity फ़ोल्डर में होना चाहता हूं।Symfony2/Doctrine2: एक बंडल के बाहर मौजूद इकाइयों को उत्पन्न करें

मैं पहले ही अपनी संस्थाओं, src/MyApp/इकाई/config/सिद्धांत में संग्रहीत के लिए YML है (class1.orm.yml, ...)

मैं का उपयोग कर corresonding पीएचपी वर्गों उत्पन्न करने के लिए कोशिश कर रहा हूँ सिद्धांत: उत्पन्न: संस्थाओं कार्य

यहाँ क्या मैं अपने अनुप्रयोग में है/config/config.yml

orm: 
    auto_generate_proxy_classes: %kernel.debug% 
    auto_mapping: false 
    mappings: 
     AppRest: 
     type: yml 
     prefix: AppRest\Entity 
     dir: %kernel.root_dir%/../src/AppRest/Entity/config/doctrine 

यहाँ आदेश मैं संस्थाओं उत्पन्न करने के लिए इस्तेमाल करते हैं

php app/console doctrine:generate:entities AppRest/Entity 

यहाँ अपवाद मैं

[InvalidArgumentException] 
Bundle "AppRest" does not exist or it is not enabled. 

मैं सिद्धांत समझता हूँ कि मैं उत्पन्न करने के लिए संस्थाओं था एक बंडल में हैं की कोशिश कर नहीं कर रहा हूँ बनाना चाहते मिलता है। मैंने --path विकल्प (--path = src/AppRest/Entity) निर्दिष्ट करने का भी प्रयास किया, लेकिन यह कुछ भी नहीं बदला।

क्या कोई मदद कर सकता है?

संपादित:

मैं अपने dir है, जो समस्या हल में अतिरिक्त स्थान से हटा दिया। पथ विकल्प निर्दिष्ट होना चाहिए

+1

मुझे नहीं लगता कि आप S2 पैदा करते हैं और उपयोग करने के लिए हो रही है के साथ बहुत भाग्य होगा एक बंडल के बाहर डी 2 इकाइयां। बस उन्हें अपने बंडल में डाल दें और इसके साथ किया जाए। कई बंडलों में इकाइयों को साझा करना आसान है। – Cerad

+0

+1 Doctrine2 के साथ युग्मित एसएफ 2 का उपयोग करके आप एसएफ 2 द्वारा सिद्धांत कार्यान्वयन स्वीकार कर सकते हैं ... – AlterPHP

उत्तर

3

असल में, मैं बस ऊपर अपने डीआईआर विकल्प में एक जगह खो रहा था। यह अब काम करता है, लेकिन मैं अभी भी सोच रहा हूं कि यह जाने का सबसे अच्छा तरीका है या नहीं।

+3

बंडल उद्देश्य सिम्फनी के साथ अपने PHP कोड को एकीकृत करना है। एक बंडल के बाहर आप जितना अधिक कोड ले जाते हैं, उतना ही कम सिम्फनी निर्भर होता है। –

+0

बंडल जाने का सबसे अच्छा तरीका है। इससे पहले कि आप बहुत दूर हो जाएं, कुछ प्रश्नों का निर्माण करने का प्रयास करें। आप वहां कुछ समस्याओं में भाग सकते हैं। – Cerad

+1

हां, हमने फिर से मूल्यांकन किया है और हमने कोरबंडल के साथ एक कार्यान्वयन चुना है, जिसमें हमारी संस्थाएं और विशेष बंडल शामिल हैं, जो कोरबंडल को संदर्भित करते हैं – David

-1

जब आपको ऐसी त्रुटि होती है, तो जांच करें कि क्या आपने बंडल का शॉर्टकट नाम निर्दिष्ट किया है, न कि बंडल निर्देशिका का नाम। उदाहरण के लिए, यदि आपके पास Acme \ DemoBundle है तो इसका संक्षिप्त नाम AcmeDemoBundle है। इस मामले में

orm: 
    mappings: 
     DemoBundle: 
      .... 

असंगत है।

सही है:

orm: 
    mappings: 
     AcmeDemoBundle: 
      .... 
संबंधित मुद्दे