2013-10-02 5 views
13

मैं थोड़ी देर के लिए CakePHP का उपयोग कर/लिब में जाना चाहिए और मैं अभी भी वास्तव में समझ में नहीं आता क्या बनाम /Vendor बनाम /Plugin/Lib में जाना चाहिए। मुझे पता है कि प्लगइन्स मूल रूप से अपने स्वयं के नियंत्रकों के साथ मिनी ऐप हैं, लेकिन कई स्थितियां हैं जब सभी तीन ठीक विकल्प की तरह लगती हैं। क्या कोई इस पर कुछ प्रकाश डाल सकता है?CakePHP: क्या बनाम/विक्रेता बनाम/प्लगइन

+0

http://stackoverflow.com/questions/24261432/how-to-use-common-function-in-helper-and-component-in-cakephp – trante

उत्तर

22

लिब

कि 3 पार्टियों या बाहरी विक्रेताओं से नहीं आते हैं 1 पक्ष के पुस्तकालयों शामिल हैं। यह आपको विक्रेता पुस्तकालयों से अपने संगठन के आंतरिक पुस्तकालयों को अलग करने की अनुमति देता है।

प्लगइन

plugin संकुल शामिल हैं।

विक्रेता

किसी भी तीसरे पक्ष के वर्ग या पुस्तकालयों यहाँ रखा जाना चाहिए। ऐसा करने से उन्हें ऐप :: आयात ('विक्रेता', 'नाम') फ़ंक्शन का उपयोग करके एक्सेस करना आसान हो जाता है। उत्सुक पर्यवेक्षकों ने ध्यान दिया होगा कि यह अनावश्यक लगता है, क्योंकि हमारी निर्देशिका संरचना के शीर्ष स्तर पर एक विक्रेता फ़ोल्डर भी है। हम दोनों के बीच अंतर में आ जाएंगे जब हम एकाधिक अनुप्रयोगों और अधिक जटिल सिस्टम सेटअप प्रबंधित करने पर चर्चा करेंगे।

स्रोत: http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html

आगे स्पष्ट करने के लिए, Lib पुस्तकालयों कि आप अपने आप को लिखने के लिए सिफारिश की है। यह सिर्फ कुछ कक्षाएं या संपूर्ण पुस्तकालय हो सकता है। उदाहरण के लिए Vendor पुस्तकालयों या स्क्रिप्ट्स के लिए अनुशंसित है जिन्हें आप गीथब से डाउनलोड कर सकते हैं। Plugin किकफैप फ्रेमवर्क प्लगइन्स के लिए सख्ती से है।

Lib बनाम Vendor के बारे में आपकी स्क्रिप्ट या तृतीय पक्ष स्क्रिप्ट के लिए कोई फर्क नहीं पड़ता कि मुझे पता है। मैंने दोनों जगहों पर अपनी स्क्रिप्ट दोनों के साथ-साथ तीसरे पक्ष की स्क्रिप्ट्स रखी हैं और इससे कोई फर्क नहीं पड़ता है। यह आपकी फाइलों को व्यवस्थित करने का एक अनुशंसित तरीका है।

आप Lib या Vendor से अपनी स्क्रिप्ट लोड कर सकते हैं App::import() जो require_once() के समान है। केकफ़्प सम्मेलनों का पालन करने वाली ढांचे की फ़ाइलों या अपनी स्क्रिप्ट को लोड करने के लिए, आप App::uses() का उपयोग करेंगे। यह फ़ाइलों को खोजने के लिए App::path() या App::build() का उपयोग करके परिभाषित पथ का उपयोग करता है।

+0

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

+0

बिल्कुल स्पष्ट नहीं है। यह दोनों के लिए अनिवार्य लगता है। विशेष रूप से लिब और विक्रेता में फ़ाइलों तक पहुंचने के लिए पूरी तरह से अलग है। – zmonteca