2015-12-21 8 views
10

मैं बस कई PHP ढांचे सीखना शुरू कर रहा हूं। मैंने जिन उदाहरणों का प्रयास किया, वे सभी composer का उपयोग करते हैं, जिनका मैंने पहले उपयोग नहीं किया है, इसलिए चीजें अभी तक मेरे लिए बिल्कुल स्पष्ट नहीं हैं।संगीतकार के विक्रेता फ़ोल्डर में सीएसएस और जेएस फ़ाइलों को सार्वजनिक रूप से कैसे कॉपी करें?

मैंने composer.json में कुछ जेएस और सीएसएस पुस्तकालयों को निर्दिष्ट किया और composer install चलाया। अब इन पुस्तकालयों को vendor फ़ोल्डर में जोड़ा गया है।

अब मुझे उन फ़ोल्डरों में जेएस और सीएसएस फ़ाइलों का उपयोग कैसे करना चाहिए, उदाहरण के लिए bootstrap/dist/css/bootstrap.min.css? मेरे द्वारा किए गए उदाहरणों में या तो public/css फ़ोल्डर में एक प्रतिलिपि है या <link href="//netdna.bootstrapcdn.com/bootswatch/2.3.1/united/bootstrap.min.css" rel="stylesheet"> जैसे volt -file में एक दूरस्थ लिंक का उपयोग करें।

किसी कारण से मुझे अपने आवेदन में इन जैसे रिमोट लिंक पसंद नहीं हैं (मुझे डर है कि वे कुछ दिन 'नीचे' हो सकते हैं)। लेकिन दूसरा विकल्प भी बहुत सुंदर नहीं है, मुझे लगता है, क्योंकि मुझे अभी भी vendor से public पर कॉपी करने के लिए सही फ़ाइलें चुननी होंगी।

क्या ऐसा करने का कोई 'स्वचालित' तरीका नहीं है? या शायद इसे एक नियंत्रक में निर्दिष्ट करके, जो फ़ाइलों को public में कॉपी करता है?

उत्तर

3

संगीतकार PHP निर्भरताओं को लाने के लिए लिखा गया था। यह सीएसएस या जेएस फाइलों जैसी अन्य वेब संपत्तियों के साथ अच्छी तरह से नहीं खेलता है।

संगीतकार एसेट प्लगइन

संपत्ति एक संगीतकार एसेट प्लगइन प्राप्त करने में कठिनाई की समस्या का समाधान करने के फ़्राँस्वा Pluchino (FXP) द्वारा विकसित किया गया था। यह संगीतकार के लिए एक एनपीएम/बॉवर निर्भरता प्रबंधक प्रदान करता है। यह इन निर्भरता प्रबंधकों के लिए एक पुल है और सामान को फ़ोल्डर फ़ोल्डर में लाएगा।

ध्यान रखें कि आप हमेशा बोवर या एनपीएम का उपयोग सीधे कर सकते हैं। composer.json में परिभाषित संगीतकार के साथ अपनी PHP निर्भरताओं को प्राप्त करें। bower.json में परिभाषित बॉवर के साथ अपनी संपत्तियां प्राप्त करें। यह एक क्लीनर दृष्टिकोण हो सकता है।

Documentation-Packagist

आप इसे CLI से आवश्यकता हो सकती है:

{ 
    "require": { 
     "bower-asset/bootstrap":  "dev-master", 
     "bower-asset/jquery-2.1.0": "2.1.0" 
    } 
} 

कुछ चौखटे प्रदान करते हैं: composer require fxp/composer-asset-plugin

उदाहरण के लिए, संपत्ति "चहचहाना बूटस्ट्रैप" और "Jquery" को लाने में संपत्तियों के लिए कस्टम हैंडलर, मुख्य रूप से अपने व्यक्तिगत फ़ोल्डर लेआउट का समर्थन करने के लिए और विक्रेताओं फ़ोल्डर से सही जगहों में चीजों की प्रतिलिपि बनाने के लिए। मुझे नहीं पता कि फाल्कन के पास संपत्ति लाने के लिए कुछ है या नहीं।

क्या ऐसा करने का कोई 'स्वचालित' तरीका नहीं है? या शायद इसे एक नियंत्रक में निर्दिष्ट करके, जो फ़ाइलों को सार्वजनिक रूप से कॉपी करता है?

प्रतिलिपि बनाई जा रही संपत्ति आपके आवेदन लेआउट में सही स्थान में विक्रेता फ़ोल्डर से एक और कहानी है।

ऐसा करने का कोई स्वचालित तरीका नहीं है। आपको तंत्र को स्वयं प्रदान करना होगा।

उदाहरण के लिए, आप public/assets या कुछ और करने के लिए विक्रेता से स्थापना पथ को बदल सकता है, https://github.com/francoispluchino/composer-asset-plugin/blob/master/Resources/doc/index.md#define-a-custom-directory-for-the-assets-installation

प्लगइन को देखने के चारों ओर चीजों की नकल नहीं है।

बोवर + ग्रंट (संक्षिप्त: बोवर साथ संपत्ति लाने, सामान कॉपी ग्रंट के साथ चारों ओर)

निकटतम "एक नियंत्रक को निर्दिष्ट" सेटअप करने के लिए एक ग्रंट केवल प्रासंगिक सामग्री ला सकते हैं कॉपी करने के लिए काम होगा करने के लिए web/assets/vendor से web/assets/app फ़ोल्डर से बोवर के साथ।

दूसरे शब्दों में: बोअर जैसे जेएस पैकेज मैनेजर भी मुख्य एपीआई फाइलों की स्वचालित प्रतिलिपि प्रदान नहीं करता है। बोवर नवीनतम jQuery संस्करण को एक परिभाषित विक्रेता फ़ोल्डर में लाएगा, लेकिन यह स्वचालित रूप से jquery.min.js को web/assets/js/jquery.min.js में कॉपी नहीं करेगा। आपको इसके ऊपर एक कार्य की ज़रूरत है।

+0

धन्यवाद, एक बात है जो मुझे अभी तक समझ में नहीं आ रही है: मुझे एक अलग संपत्ति निर्भरता प्रबंधक की आवश्यकता क्यों होगी, क्योंकि सभी अधिकार संपत्ति संगीतकार द्वारा भी डाउनलोड/स्थापित की जाती है। या क्या आपका मतलब है कि शायद कुछ जेएस फाइलें अन्य पैकेजों पर निर्भर करती हैं, उदाहरण के लिए 'jQuery UI' जिसे 'jQuery' की आवश्यकता है? और क्या यह प्लगइन उन्हें 'विक्रेता' पर भी डाउनलोड करता है? – Dylan

+0

अलग निर्भरता प्रबंधकों के पास स्वच्छ विन्यास फाइलों का लाभ है। पुल काम करने के लिए आपको composer.json में prefixed कॉन्फ़िगरेशन सामग्री जोड़ने की ज़रूरत नहीं है। अलग कॉन्फ़िगरेशन, आप जानते हैं कि कहां जाता है। PHP composer.json संपत्ति बोवर ... - और हां, संपत्तियों पर भी निर्भरता हो सकती है .. दूसरे शब्दों में जेएस और सीएसएस संपत्तियों के लिए बोवर को देखने के लायक हो सकते हैं। - हां, संगीतकार संपत्ति प्लगइन उन्हें विक्रेता फ़ोल्डर में डाउनलोड करता है, जब तक कि आप एक कस्टम निर्देशिका परिभाषित नहीं करते हैं या स्वयं फ़ाइलों को प्रतिलिपि/स्थानांतरित नहीं करते हैं। –

+0

मैंने उत्तर में बोवर + ग्रंट का संयोजन जोड़ा है। –

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

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