2012-02-08 22 views
14

में कस्टम क्लास लोड करना मेरे पास क्लास माई क्लास है। यह ऐप/लीब/माईडीर/माइक्लास में रहता है। मैं ऐप का उपयोग करना चाहता हूं: इसे लोड करने के लिए उपयोग करता है, लेकिन इसे काम पर नहीं ला सकता है।केकपीएचपी 2. एक्स - ऐप/लीब डीआईआर

CakePHP 1.3 में मैं इसे माध्यम से लोड होगा:

App::import('Lib', 'MyDir/MyClass'); //this still works in CakePHP 2.1 

CakePHP 2.1 मैं क्या करने की कोशिश कर रहा हूँ में:

App::uses('MyClass', 'Lib/MyDir'); 

मैं 'नए' करने का प्रयास करते अप MyClass मैं कक्षा के लिए ' MyClass 'नहीं मिला।

कस्टम लिब कक्षाओं पर ऐप :: उपयोगों का उपयोग करना संभव नहीं है? मैं ऐप :: आयात() का उपयोग जारी नहीं रख सकता क्योंकि अगर 'ऐप :: आयात (' लीब ',' माईडीर/माइक्लास ');' 2x कोड पथ मैं लाइन 531

क्या मैं गलत कर रहा हूँ पर lib/केक/कोर/App.php में एक 'वर्ग redeclare नहीं कर सकता' त्रुटि मिलती है में दिखाई देता है?

संपादित करें: यदि ऐसा है तो मैं अनुप्रयोग :: उपयोग करता है कर ('MyClass', 'mydir'); यह काम करता हैं। यकीन नहीं है कि यह कैसे बीहाइव होना चाहिए, लेकिन बग की रिपोर्टिंग।

+0

मुझे निम्न प्रतिबद्धता मिली जो समस्या को ठीक करना चाहिए (इसे मेरे ऊपर कामों के ऊपर उपयोग करेगा)। एक बार यह रिलीज में हो जाने पर मैं इस सवाल को अपडेट कर दूंगा। https://github.com/cakephp/cakephp/commit/8ed4876830546593f20db6c7e9aed299aa76a80a – rynop

+0

** जो भी इसे गुगल करता है ** सुनिश्चित करें कि फ़ाइल में एक ही नाम वाला एक वर्ग है। [इस उत्तर में अधिक जानकारी] (http://stackoverflow.com/questions/19120409/cakephp-unable-to-load-class-from-app-lib/37231878#37231878) –

उत्तर

20

आप

App::uses('MyClass', 'MyDir'); 

कोशिश किया था? के बाद से "लिब" अपने आप में एक आधार निर्देशिका के रूप में देखा जा सकता है

पुनश्च: आप भी समूह सब कुछ लिब अंदर सबफ़ोल्डर्स (संकुल) में कोर के समान करने वाले हैं।

+0

हाँ यह काम करता है। लेकिन यह अंतर्ज्ञानी प्रतीत नहीं होता है। http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::uses के पास 'Lib' के लिए भी एक उदाहरण है। हाँ, मैं उप-फ़ोल्डर में सबकुछ डालने की कोशिश कर रहा हूं। आइए कहें कि मेरे पास सबफ़ोल्डर में लिब डायर में कोई कक्षा नहीं थी (यह केवल ऐप/लीब/MyClass.php में थी) - क्या मैं इसे :: उपयोग() के साथ लोड नहीं कर पाऊंगा? – rynop

+0

हाँ, आप हैं। यह केवल ऐप :: उपयोग ('MyClass', 'Lib') से है; लेकिन इससे बचा जाना चाहिए :) – mark

+0

मैं संस्करण केकेएचपी 2.5.4 में काम कर रहा हूं। मुझे एक और कक्षा कक्षा में एक लिब कक्षा आयात करने की जरूरत है। पूर्व के लिए : मेरे पास लिब फ़ोल्डर के अंतर्गत एक क्लास Search.php है, और GooglePlus.php Lib/Google फ़ोल्डर के अंतर्गत है। मुझे Search.php में GooglePlus.php फ़ाइल का उपयोग करने की आवश्यकता है, लेकिन यह काम नहीं कर रहा है। मैंने ऐप की कोशिश की: लिब क्लास को पंजीकृत करने के लिए http://book.cakephp.org/2.0/en/core-utility-libraries/app.html में भी फ़ंक्शन का निर्माण किया गया है। मैं एक lib कक्षा का उपयोग दूसरे में कैसे करूं? या यदि यह संभव नहीं है, तो इसके लिए वैकल्पिक दृष्टिकोण क्या है? – Dashrath

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