2012-03-16 21 views
7

का नवीनतम संस्करण प्राप्त करने के लिए मैन्युअल रूप से deps फ़ाइल को अद्यतन करना संभव है सिद्धांत 2.2? मैं नए Paginator घटक का उपयोग करना चाहता हूं।सिद्धांत 2.2 प्राप्त करने के लिए मैन्युअल रूप से Symfony2 deps फ़ाइल को अद्यतन कर रहा है?

[doctrine-common] 
    git=http://github.com/doctrine/common.git 
    version=2.2.1 

[doctrine-dbal] 
    git=http://github.com/doctrine/dbal.git 
    version=2.2.1 

[doctrine] 
    git=http://github.com/doctrine/doctrine2.git 
    version=2.2.1 

निकालें deps.lock और कार्य करें::

php bin/vendors update 

क्या आपको लगता है कि काम करेंगे तो बुनियादी तौर पर मैं साथ deps बदलाव करने में सोच रहा था?

संपादित: फ़ाइल इस प्रकार दिखाई देगा: http://pastebin.com/FEDMNhii

उत्तर

8

मेरी राय में, gilden द्वारा सुझाए गए सभी काम अनावश्यक और अधिक सतर्क हैं। बेशक आप अपनी deps फ़ाइल को मैन्युअल रूप से अपडेट कर सकते हैं जो भी आप चाहते हैं। मैं वर्तमान में बिना किसी मुद्दे के सिम्फनी 2.0.11 पर सिद्धांत \ सामान्य (2.2.1), सिद्धांत \ DBAL (2.2.1), और सिद्धांत (2.2.1) चला रहा हूं।

यह पुस्तकालयों है कि आप के बारे में (आमतौर पर) चिंता करने की जरूरत नहीं है, यह बंडलों कि पुस्तकालयों कि विशेष संस्करण (रों) की आवश्यकता होती है का उपयोग है। उदाहरण के लिए, सिम्फनी 2 के पास सिद्धांत के किसी भी संस्करण पर कोई प्रत्यक्ष निर्भरता नहीं है - लेकिन DoctrineBundle करता है।

बंडल/लाइब्रेरी को अपग्रेड करने से पहले, Packagist.org पर उनकी आवश्यक निर्भरताओं को देखना आम तौर पर अच्छा होता है। उस पैकेज की खोज करें जिसे आप अपग्रेड करना चाहते हैं और देखें कि वे किस निर्भरता को परिभाषित करते हैं। नोट: यह सिम्फनी 2.1 पर आवश्यक नहीं होगा क्योंकि यह विक्रेता पुस्तकालयों का प्रबंधन करने के लिए Composer का उपयोग करेगा।

हालांकि, आप कभी भी यह नहीं जान पाएंगे कि आपके इंस्टॉल के साथ कुछ काम करता है या नहीं जब तक कि आप इसे आजमाएं। बेशक, बेवकूफ कुछ भी मत करो - लेकिन विक्रेता पुस्तकालयों को अद्यतन करके चीजों को तोड़ने से डरने का कोई कारण नहीं है। गिट में अपना कोड स्टोर करें और आप आसानी से अपने परिवर्तनों को वापस कर सकते हैं।देखें: How to create and store a Symfony2 project in Git


इसके अलावा, जब deps में version=#.#.# को निर्दिष्ट - भले ही आप एक deps.lock फ़ाइल बिल्कुल नहीं है, तो आप हमेशा एक ही हैश के लिए प्रतिबद्ध है क्योंकि आप भंडार पर Git टैग को निर्दिष्ट कर रहे हैं मिल जाएगा।

संस्करण संख्या प्रदान करने के बजाए कुछ बंडल, कई सिम्फनी संस्करणों के साथ संगतता के प्रबंधन के लिए विभिन्न शाखाएं प्रदान करेंगे। तो आप version=origin/2.0 जैसे कुछ देख सकते हैं जिसका अर्थ है कि विक्रेता स्क्रिप्ट रिपोजिटरी के 2.0 नाम की शाखा पर नवीनतम प्रतिबद्धता की जांच करेगी। रखरखाव संभवतः उस शाखा को सिम्फनी 2.0.x के साथ संगत रखने की कोशिश करेगा।

+0

तो अच्छा स्पष्टीकरण, +1। बीटीडब्ल्यू, जब सिम्फनी 2.1 उपलब्ध होगा? – gremo

-1

deps.lock फ़ाइल आपको स्पष्ट रूप से अस्थिर कोड प्राप्त करने के लिए जोखिम पर अपने आप को डाल रहे हैं हटाने।

मैं कुछ को तोड़ने के जोखिम को कम करने के लिए निम्न चरणों का इस्तेमाल किया है:

  • लिख वर्तमान घटकों के हैश प्रतिबद्ध आप deps.lock
  • से अपडेट करना चाहते हैं GitHub से हैश प्रतिबद्ध खोजें और इसे लिखो।
  • किसी घटक की निर्देशिका पर नेविगेट करें और git checkout [commit] टाइप करें जहां [प्रतिबद्ध] नया हैश है।
  • अपना कैश साफ़ करें और सत्यापित करें कि साइट अभी भी कम या कम काम कर रही है।
  • deps.lock करने के लिए नए प्रतिबद्ध हैश चिपकाएं और चलाने bin/vendors install

ध्यान रखें कि मैं दृढ़ता से इस के खिलाफ सलाह देंगे रखें। क्या आपको चीजों को पेंच करना चाहिए, आप अपने आप पर बहुत अधिक हैं और आपकी मदद करने के लिए कोई नहीं है।

+0

धन्यवाद आदमी। मैंने एक ताजा इंस्टॉलेशन पर एक त्वरित परीक्षण किया और सब ठीक लगता है (इकाई उत्पादन, प्रश्न और इतने पर)। लेकिन सलाह के लिए फिर से धन्यवाद। – gremo

+1

क्यों न केवल डीपीएस और deps.lock (या गिट का उपयोग) बचाओ और यदि कुछ तोड़ने के मामले में आप अपने परिवर्तनों को वापस लेते हैं और फिर अपने विक्रेताओं को अद्यतन करते हैं। इसे deps.lock में निर्दिष्ट सब कुछ डाउनलोड करना चाहिए? – Sgoettschkes

+0

मैं मानता हूं कि यह सलाह अत्यधिक सतर्क और जटिल लगती है जब deps.lock को आपदा के मामले में सहेजा और बहाल किया जा सकता है। – user1207727

संबंधित मुद्दे