2012-09-11 15 views
7

मेरे पास एक सिम्फनी 2.1 प्रोजेक्ट है, जिसमें संगीतकार के माध्यम से अतिरिक्त बंडल इंस्टॉल किए गए हैं। मैं इसे अपने उत्पादन सर्वर पर तैनात करना चाहता हूं, लेकिन मुझे आश्चर्य है कि मुझे composer.json फ़ाइल में किसी भी चीज को बदलने की ज़रूरत है। यहां मेरी वर्तमान फ़ाइल सामग्री है:मेरे composer.json फ़ाइल को उत्पादन वातावरण में कैसा दिखना चाहिए?

{ 
    "name": "symfony/framework-standard-edition", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/" } 
    }, 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.1.1", 
     "doctrine/orm": ">=2.2.3,<2.4-dev", 
     "doctrine/doctrine-bundle": "1.0.*", 
     "twig/extensions": "1.0.*", 
     "symfony/assetic-bundle": "2.1.*", 
     "symfony/swiftmailer-bundle": "2.1.*", 
     "symfony/monolog-bundle": "2.1.*", 
     "sensio/distribution-bundle": "2.1.*", 
     "sensio/framework-extra-bundle": "2.1.*", 
     "sensio/generator-bundle": "2.1.*", 
     "jms/security-extra-bundle": "1.2.*", 
     "jms/di-extra-bundle": "1.1.*", 

     "friendsofsymfony/user-bundle": "*", 
     "knplabs/knp-paginator-bundle": "dev-master", 
     "ornicar/gravatar-bundle": "dev-master", 
     "liip/url-auto-converter-bundle": "dev-master" 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ], 
     "post-update-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin" 
    }, 
    "minimum-stability": "dev", 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web" 
    } 
} 

क्या मुझे minimum-stability सेटिंग बदलनी चाहिए?

क्या मुझे वन्यकार्ड के बिना, "dev-master" के बिना एक ही संस्करण में प्रत्येक आवश्यकता को ठीक करना चाहिए?

क्या मुझे http://packagist.org/ पर प्रत्येक निर्भरता का अंतिम स्थिर संस्करण खोजना है?

उत्तर

11

मुझे लगता है कि आपका संगीतकार सबसे महत्वपूर्ण है, संगीतकार.जेसन इतना नहीं है।

अपने ऐप को एक परीक्षण सर्वर, php composer.phar install पर तैनात करें, फिर यह सुनिश्चित करने के लिए परीक्षण चलाएं कि सबकुछ ठीक है। यदि यह वास्तव में ठीक है, तो composer.lock के साथ उत्पादन सर्वर पर तैनात करें।

इस प्रकार आपके डेप आपके परीक्षण सर्वर के समान ही होंगे। यह भी उपयोगी है यदि आपके पास एकाधिक फ्रंट सर्वर हैं, तो composer.lock सुनिश्चित करेगा कि हर कोई सटीक कोड का उपयोग करेगा।

आप

कहा कि मैं एक एकल संस्करण के लिए हर आवश्यकता को ठीक करना चाहिए, वाइल्डकार्ड के बिना, या "देव-गुरु"?

यह संगीतकार की भूमिका है। सब कुछ "ठीक करने" के लिए अनलॉक करें। Composer.json निर्भरताओं की घोषणा करने और संस्करणों के बीच संभावित असंगतताओं को संभालने के बारे में है। डिफ़ॉल्ट रूप से, आपको स्थिर संस्करणों के साथ चिपकना चाहिए, जब तक कि आपको विकास शाखा में कुछ फैंसी नई सुविधा की आवश्यकता न हो, या बगफिक्सी अभी तक विलय न हो।

इसलिए, आपको अपने संगीतकार संस्करण को संस्करण बनाना चाहिए, यह स्वचालित तैनाती के लिए आसान है।

+0

शानदार उत्तर, लेकिन क्या आप "अपना ऐप तैनात" चरण पर विस्तृत कर सकते हैं? मुझे किस संगीतकार फाइल की आवश्यकता है? स्पष्ट रूप से .phar और .lock फ़ाइलें। क्या मुझे अभी भी composer.json की आवश्यकता है? Composer_installer.php के बारे में क्या? –

+1

@ बेंजामिनब्रिज़ी वैसे मैं "आपके ऐप को तैनात करने" को और विस्तारित नहीं कर सकता। संगीतकार केवल निर्भरता का ख्याल रखता है, न कि आपके आवेदन पर। आम तौर पर "आपके ऐप को तैनात करना" एक 'गिट क्लोन' हो सकता है। आपको अभी भी 'composer.json' की आवश्यकता है, क्योंकि इसमें deps सूची है। 'composer.lock' केवल निर्दिष्ट करें कि आप कौन से संस्करण स्थापित करना चाहते हैं। मुझे नहीं पता कि composer_installer.php क्या है, क्षमा करें। –

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