2012-12-15 26 views
9

मैं एक परियोजना में Composer का उपयोग शुरू कर रहा हूं, जिसमें मैंने ऐतिहासिक रूप से संस्करण नियंत्रण के तहत सभी निर्भरताओं को उपयोग किया था।संगीतकार बनाम सिम्फनी 2 ऑटोलोडर

यह प्रोजेक्ट वर्तमान में Symfony 2 autoloader का उपयोग करता है। चूंकि संगीतकार अपने स्वयं के ऑटोलोडिंग तंत्र (vendor/autoload.php) के साथ आता है, जो मुझे आश्चर्यचकित करता है कि मुझे अभी भी सिम्फनी क्लासलोडर का उपयोग करने की आवश्यकता है।

मुझे लगता है कि मैं सिर्फ संगीतकार autoloader autoload को अपने प्रोजेक्ट वर्ग के रूप में अच्छी तरह से इस्तेमाल कर सकते हैं:

$loader = require 'vendor/autoload.php'; 
$loader->add('MyProject', 'src'); 

वहाँ पूरी परियोजना के लिए संगीतकार autoloader प्रयोग करने में कोई दोष है?

क्या सिम्फनी ऑटोलोडर ऑफर करता है कि मुझे संगीतकार ऑटोलोडर में नहीं मिलेगा?

उत्तर

13

आपको केवल संगीतकार ऑटोलोडर की आवश्यकता हो सकती है। इसमें एकमात्र विशेषता है जो ApcClassLoader है जो एपीसी के साथ चीजों को गति देता है लेकिन कुछ जटिलता प्रस्तुत करता है (तैनाती के दौरान आपको कैश साफ़ करना होगा)। संगीतकार के-फ्लैग का उपयोग करना (डंप-ऑटोलोड लोड करने या चलाने पर) आपको एक क्लासमैप देगा जो गति के संदर्भ में एपीसी के बराबर या कम जटिलता के बिना बराबर होगा।

+0

-o (--optimize) विकल्प का उपयोग करने के लिए, आपको कैश को साफ़ करने के बजाय प्रत्येक परिनियोजन पर 'संगीतकार डंप-ऑटोलोड - ऑप्टिमाइज़' के साथ क्लासमैप उत्पन्न करने की आवश्यकता होगी, लेकिन यह सहमति हुई कि यह कहीं अधिक मूर्खतापूर्ण है। चरण या रिलीज के बीच कैश कुंजी संघर्ष प्राप्त करना बहुत आसान है, भले ही आप यहां वर्णित कैश को सही तरीके से साफ़ करते हैं: http://stackoverflow.com/a/12859565/160565 –