2012-07-06 14 views
12

मुझे एक बहुत बड़ी परियोजना में जेएफ और गिट के साथ काम करने में कुछ समस्याएं आ रही हैं। जेएफएफ एप्लीकेशन में लगभग 20 मॉड्यूल हैं और इस पल के लिए सब कुछ एक गिट रिपोजिटरी में संग्रहीत किया जाता है। तो जब आप एप्लिकेशन को चेकआउट करते हैं, तो आप मॉड्यूल, सीएसएस शीट्स, जेएस फाइल आदि के पूरे सेट को चेकआउट करते हैं।बड़ी परियोजनाओं में ज़ेंड फ्रेमवर्क और गिट के साथ काम करना

मैं क्या करना चाहता हूं, वर्डप्रेस या ड्रूपल में कुछ है: आपके पास अपना मूल एप्लिकेशन है और प्रत्येक के लिए मॉड्यूल आपके पास एक अलग गिट भंडार है जिसे आप मॉड्यूल निर्देशिका में चेकआउट करते हैं। चेकआउट के बाद, आप इस पर काम करते हैं और फिर आप इसे प्रतिबद्ध करते हैं। लेकिन ज़ेंड के साथ आप ऐसा नहीं कर सकते क्योंकि मीडिया फाइलें (सीएसएस, जेएस, इमेज) को अलग-अलग निर्देशिका में/सार्वजनिक रूप से संग्रहीत किया जाता है (प्रत्येक मॉड्यूल में इसका स्वयं का सीएसएस हो सकता है, जेएस फाइलें/public/_MODULE_NAME_/css उदाहरण के लिए)। मैं/आवेदन/मॉड्यूल/में काम कर रहा हूं।

तो प्रश्न यह है कि आप ज़ेंड फ्रेमवर्क मॉड्यूलर अनुप्रयोगों और गिट के साथ कैसे काम करते हैं?

+3

आप हमेशा अपनी मॉड्यूल निर्देशिका के अंदर स्थिर संसाधन (सीएसएस, जेएस, आदि) डाल सकते हैं और या तो उन्हें बिल्ड बिल्ड के रूप में 'सार्वजनिक' पर कॉपी कर सकते हैं या 'सार्वजनिक' – Phil

+0

में सिम्लिंक बना सकते हैं, मुझे इसी तरह की समस्या की तरह लगता है कि मैं एक बार था: http://stackoverflow.com/questions/6680768/how-do-i-organize-my-git-repo – eckes

+0

जेडएफ 2 में मॉड्यूल पूरी तरह से स्वतंत्र हैं, उन्हें एक सबमिशन (पूरी तरह से अलग रेपो) के रूप में जोड़ा जा सकता है, लेकिन ZF1 में इसकी दी गई संरचना के साथ यह संभव नहीं है। – bedeabza

उत्तर

2

मैं आमतौर पर नरम लिंक का एक सेटअप से निपटने के लिए, webfolder में एक सुपर परियोजना होने और में एक अलग फ़ोल्डर से मॉड्यूल symlinking का प्रबंधन:

* SuperProject/ 
    + application/ 
    + ModuleA --> ../../Modules/ModuleA/application 
    + ModuleB --> ../../Modules/ModuleB/application 
    + config/ 
    + views/ 
    + layouts/ 
    + public/ 
    + ModuleA --> ../../Modules/ModuleA/public 
    + ModuleB --> ../../Modules/ModuleB/public 
    + css/ 
    + js/ 
    + library/ 
+ Modules/ 
    * ModuleA/ 
    + application/ 
     + config/ 
     + views/ 
     + models/ 
    + public/ 
     + css/ 
     + js/ 
    * ModuleB/ 
    + application/ 
     + config/ 
     + views/ 
     + models/ 
    + public/ 
     + css/ 
     + js/ 

अभिनय किया निर्देशिका खजाने कर रहे हैं, SuperProject/सार्वजनिक http सर्वर के लिए प्रविष्टि बिंदु है (symlinks पाठ्यक्रम के सक्षम सक्षम के साथ)। आप स्पष्ट रूप से अपने सुपरप्रोजेक्ट रिपॉजिटरी में कोई मॉड्यूल-फ़ाइलें नहीं जोड़ते हैं, लेकिन केवल वैश्विक निर्देशिकाओं (जैसे एप्लिकेशन/कॉन्फ़िगर /) में परिवर्तन - सर्वोत्तम रूप से, आप .git_ignore-file के माध्यम से मॉड्यूल को अनदेखा करते हैं। चूंकि यह विधि सिम्लिंक पर निर्भर करती है, यह केवल यूनिक्सॉयड सिस्टम पर काम करेगी। जबकि सही नहीं है, यह कम से कम परेशानी है।

+0

सिम्लिंक के संबंध में: क्या यह Win32 पर जंक्शन के साथ काम कर सकता है (http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx, http://en.wikipedia.org/wiki/Symbolic_link # NTFS_Junction_points)? – eckes

+0

@eckes यह काम कर सकता है, अभी तक कोशिश नहीं की है। लेकिन एक त्वरित शोध से, यह एक ही सुविधा को एक यूनिक्सॉयड सिम्लिंक के रूप में लागू करने लगता है। क्या आपके पास इसका परीक्षण करने के लिए एक विंडोज सिस्टम है? – Lars

+0

केवल एक्सपी। और वास्तव में दिलचस्प बात (एनटीएफएस प्रतीकात्मक लिंक जो फाइलों का समर्थन करते हैं, न केवल फ़ोल्डरों, http://en.wikipedia.org/wiki/NTFS_symbolic_link) वहां काम नहीं करते हैं लेकिन कम से कम Vista की आवश्यकता है। – eckes