2013-07-28 7 views
7

मुझे बस कुछ कक्षाओं को स्वत: लोड करने की आवश्यकता है, और मुझे psr-0 नेमस्पेस पागलपन (कोई अपराध नहीं) पसंद नहीं है। भले ही मैं एक ही संगीतकार संस्करण का उपयोग कर रहा हूँ किसी कारण इसे अब और काम नहीं करता है के लिएबिना किसी पुनर्स्थापित किए संगीतकार के साथ नामस्थान के बिना कक्षाओं को स्वत: लोड कैसे करें?

"psr-0": { 
    "": [ 
     "app/controller/", 
     "app/model/" 
    ] 
} 

,:

यह मेरा परियोजना में ठीक काम करता था। मुझे इसे एक नई परियोजना के लिए चाहिए जो सिलेक्स का भी उपयोग कर रहा है। क्या यह सिलेक्स के साथ एक संघर्ष हो सकता है?

मुझे "क्लासमैप" विकल्प के बारे में पता है, लेकिन यह बेकार है क्योंकि यह हर बार जब मैं एक नई कक्षा जोड़ता हूं तो मैं "संगीतकार इंस्टॉल" चलाता हूं।

कोई विचार?

उत्तर

1

यदि आप केवल ऑटोलोड लोड फ़ाइल को पुन: उत्पन्न करना चाहते हैं तो composer dump-autoload का उपयोग करें।

6

"आदिम" JSON गुणों का उपयोग करने का प्रयास करें, एक सरणी नहीं (जैसे आपके उदाहरण में)। यह psr-4 साथ मेरे लिए काम करता आप की तरह कहते हैं, "": "app/" साथ:

{ 
"autoload": { 
    "psr-4": { 
     "Robbie\\": "core/", 
     "": "app/" 
    } 
}, 
"require": { 
     "monolog/monolog": "1.2.*" 
    } 
} 

यह मैं निर्देशिका core तहत रोबी नाम स्थान देता है, सूत्रों का कहना है संगीतकार द्वारा नियंत्रित नहीं का एक उदाहरण के रूप में, 3 पार्टी (विक्रेता) monolog नाम स्थान और app निर्देशिका के नीचे स्रोतों के लिए मेरा डिफ़ॉल्ट या गैर-नामस्थान।

एक copmpser update के बाद, उन सभी को जब उत्पन्न autoload.php सहित उपलब्ध हैं:

<?php  
require_once 'vendor/autoload.php'; 
// ...  
?> 
+0

'" ":" एप्लिकेशन/"' – Toskan

+0

काम नहीं करता है मुझे लगता है कि संगीतकार एक फ़ाइल नाम देने का एक संयोजन और संगीतकार स्थापित संगीतकार अद्यतन संगीतकार स्थापित संगीतकार अद्यतन अंततः यह किया था – Toskan

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