संगीतकार PHP आवश्यकता को छोड़ें


117

हम PHPCI और कंपोजर का उपयोग कर रहे हैं। PHPCI चलाने वाला सर्वर PHP 5.3 पर है।

एक परियोजना के लिए हमने संगीतकार का उपयोग करके फेसबुक PHP एसडीके को जोड़ा। इसके लिए PHP 5.4 की आवश्यकता है। कम्पोज़र PHPCI द्वारा ट्रिगर हो जाता है और निष्पादित हो जाता है। लेकिन क्योंकि CI सर्वर सिर्फ PHP 5.3 संगीतकार को त्रुटि संदेश के साथ विफल हो गया:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

यह PHPCI में मेरे निर्माण को विफल करते हैं, निश्चित रूप से।

क्या इस आवश्यकता को छोड़ने की संभावना है? शायद कंपोजर.जसन के लिए एक विकल्प जोड़कर? या कंपोजर के लिए एक पैरामीटर। थार कॉल?

जवाबों:


284

मुझे विकल्प मिल गया है:

composer install --ignore-platform-reqs

प्लेटफ़ॉर्म आवश्यकताओं (php और ext- पैकेज) पर ध्यान न दें।


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

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform


मैं निजी भंडार को कैसे अनदेखा कर सकता हूं। कुछ पैकेज में निजी रेपो की आवश्यकता होती है।
डंगफांक्सुआन

बहुत बढ़िया। यह तब उपयोगी होता है जब php cli अभी तक संस्करण परिवर्तन को प्रतिबिंबित नहीं कर रहा है।
जियोवनीपड्स

संगीतकार 2 में एक नई कमांड है, जिसका उपयोग किया जा सकता है: php.watch/articles/composer-ignore-platform-req
Armin

3

कई कमांड्स के लिए, आप कंपोज़र को " --ignore-platform-reqs":

composer COMMAND --ignore-platform-reqs

यह php संस्करण विनिर्देश को बायपास करेगा।

इस बात से अवगत रहें कि सॉफ्टवेयर काम कर सकता है या नहीं: php संस्करण विनिर्देश है क्योंकि कहीं न कहीं कोड में कम से कम निर्दिष्ट php संस्करण की आवश्यकता होती है, इसलिए यदि आप उस कोड का उपयोग करते हैं तो सॉफ्टवेयर टूट जाएगा।


--ignore-platform-reqsउपलब्ध सभी आदेशों के लिए नहीं है, जैसा कि आपका उत्तर बताता है।
आर्मिन

-11

अगर किसी चीज को PHP के एक विशिष्ट संस्करण की आवश्यकता होती है, तो वह PHP के निचले संस्करण में नहीं चलेगी। जब आप PHP की आवश्यकता को दरकिनार कर देंगे तब भी आप त्रुटियों को ठीक कर लेंगे।

Btw, PHP 5.3 अब बनाए नहीं रखा गया है, मैं दृढ़ता से PHPCI सर्वर को अपडेट करने की सलाह दूंगा।


3
पहले मैं जानना चाहूंगा कि PHP की आवश्यकता को कैसे दरकिनार किया जाए।
आर्मिन

आप नहीं कर सकते हैं और आप कोड के रूप में कम पीएचपी संस्करण में काम नहीं करेगा
Wouter J

3
यह। बस CI सर्वर को कम PHP संस्करण मिला। सर्वर जिसमें facebook SDK होता है वह PHP 5.4 पर चलता है। यह सिर्फ ci सर्वर के बारे में है, जो हर चीज को एक अच्छी तैनाती योग्य ज़िप फ़ाइल में पैक करता है।
आर्मिन

हालाँकि PHP 5.3 को अब मुख्य PHP डेवलपर्स द्वारा बनाए नहीं रखा गया है, लेकिन लिनक्स के कुछ स्वाद अभी भी इसका समर्थन करते हैं और थोड़ी देर के लिए करेंगे। Ubuntu 12.04 LTS जहाज 5.3 के साथ और अप्रैल 2017 तक समर्थित है ( wiki.ubuntu.com/LTS )। 14.04 पर जाना सबसे अच्छा अपग्रेड पथ है, लेकिन ब्रेकिंग परिवर्तन हैं जिन्हें ठीक करने के लिए काम की मात्रा की आवश्यकता होती है (Apache 2.4, php-fpm etc)। इसलिए बहुत से इंटरनेट अभी भी 5.3.x का उपयोग कर रहे हैं।
एंड्रयू मैककॉम ने

सच में दुर्भाग्य से पैकेज के 99% भी अच्छी तरह से समर्थित लोगों के पास उचित आवश्यकताएं नहीं हैं। यह अधिक संकेतक है कि डेवलपर किसी और चीज की तुलना में क्या उपयोग कर रहा है।
मिसेचुएट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.