2012-05-02 30 views
7

संदर्भ नहीं देता है, मुझे उस फ़ाइल से शीर्षक में संदर्भित त्रुटि मिल रही है जो डीबगर वर्ग का संदर्भ नहीं देती है। अगर मैं मैन्युअल रूप से डीबगर आयात करता हूं, तो त्रुटि अभी भी दिखाई देती है। फ़ाइल में कक्षा परिभाषा को समाप्त करने वाले अंतिम} में त्रुटि में संदर्भित पंक्ति संख्या। कुछ भी नहीं है} (वहाँ नहीं है?> या तो)। जिस फ़ाइल में मुझे त्रुटि मिल रही है, वह सीधे डीबगर को संदर्भित नहीं करता है जैसा कि मैं बता सकता हूं (जैसा कि, डीबगर का कोई स्पष्ट उपयोग नहीं है)।केकपीएचपी "घातक त्रुटि: क्लास 'डीबगर' नहीं मिली है" एक फ़ाइल में जो डीबगर

यहाँ स्टैक ट्रेस है:

(!) Fatal error: Class 'Debugger' not found in /home/gregg/workspace/Fueled/dapprly/backend/app/Plugin/Facebook/Controller/Component/FapiComponent.php on line 107 
Call Stack 
# Time Memory Function Location 
1 0.0003 245664 {main}() ../index.php:0 
2 0.0168 1657712 Dispatcher->dispatch() ../index.php:100 
3 0.0237 2753568 Dispatcher->_invoke() ../Dispatcher.php:85 
4 0.0237 2753768 Controller->constructClasses() ../Dispatcher.php:99 
5 0.0237 2755712 ComponentCollection->init() ../Controller.php:638 
6 0.0255 3057112 ComponentCollection->load() ../ComponentCollection.php:52 
7 0.0255 3057600 class_exists () ../ComponentCollection.php:99 
8 0.0255 3057896 App::load() ../ComponentCollection.php:0 
9 0.0257 3091416 ErrorHandler::handleError() ../ComponentCollection.php:551 

और यहाँ लाइन 107 के आसपास संदर्भ है: मैं त्रुटि पाया

class FapiComponent extends Component { 
    // -- snip -- // 

    public function method() 
    { 
     $url = urlencode('http://url'); 

     $param = array(
     'access_token' => '##' , 
     'object' => 'user', 
     'fields' => 'feed', 
     'callback_url' => $url); 
     $id = $this->facebook->getAppId(); 
     $subs = $this->facebook->api('/' . $id . '/subscriptions' , 'POST' , $param); 
    } 
} // <-- line 107 ... nothing after this 
+0

के लिए इंतजार करना है घटक वर्ग उपयोग डीबगर करता है? –

+0

नहीं, मुझे त्रुटि मिली। मैंने जो क्लास दिखाया है वह प्रारंभिक विधि लागू है। लेकिन इसे सार्वजनिक कार्य शुरू करने के रूप में लागू किया गया है ($ नियंत्रक)। यह एक E_STRICT त्रुटि है। मेरा सेटअप उन त्रुटियों को पकड़ रहा है। यह त्रुटि यह डीबगर की तलाश कर रही है। मुझे यकीन नहीं है कि यह इसे स्वत: लोड करने में सक्षम क्यों नहीं है, लेकिन सार्वजनिक कार्य शुरू करने के लिए विधि को बदलें (नियंत्रक $ नियंत्रक) जिस मुद्दे पर था, उसे ठीक किया गया। – gregghz

उत्तर

8

यह वर्ग जो मैंने दिखाया है प्रारंभिक विधि लागू है। लेकिन यह

public function initialize($controller) 

के रूप में यह एक E_STRICT त्रुटि है, क्योंकि यह प्रकार संकेत बाहर छोड़ कर माता पिता विधि से अलग लागू हो जाता है। मेरा सेटअप E_STRICT त्रुटियों को पकड़ रहा है। यह त्रुटि यह डीबगर की तलाश कर रही है। मुझे यकीन है कि क्यों यह यह autoload करने में सक्षम नहीं है, लेकिन

public function initialize(Controller $controller) 

लिए इस मुद्दे को मैं हो रही थी विधि बदलते तय नहीं कर रहा हूँ।

+1

मुझे यह भी पता चला कि ऐसा इसलिए हुआ क्योंकि PHP 5.4 में E_ALLICT में E_STRICT शामिल है। इसलिए यदि आप उन त्रुटियों को नहीं देखना चाहते हैं तो आपको विशेष रूप से * बहिष्कृत करें E_STRICT की आवश्यकता है। PHP 5.3 में आपको विशेष रूप से * शामिल * E_STRICT करना था यदि आप उन त्रुटियों को देखना चाहते थे। – gregghz

0

यह तब होता है जब आपके पास E_STRICT त्रुटि होती है। PHP 5.4 चलाते समय मेरा मुख्य था, आपको सार्वजनिक, निजी और संरक्षित फ़ंक्शन घोषणाएं होने की आवश्यकता है।

13

यह PHP bug के कारण है जो संकलन समय त्रुटियों के लिए ऑटो लोडिंग नहीं करता है (उदाहरण के लिए, E_STRICT)।

यह PHP 5.4.21 में तय किया गया था और workaround pull request केकपीएचपी द्वारा स्वीकार किया गया था।

मैन्युअल इस मुद्दे वैकल्पिक हल के लिए और CakePHP की त्रुटि हैंडलर से E_STRICT छूट:

  1. अपना पसंदीदा संपादक में खोलें core.php (आप find . -name core.php की तरह कुछ प्रदर्शन से फ़ाइल मिल सकता है)।
  2. निम्न पंक्ति खोजें: 'level' => E_ALL & ~E_DEPRECATED,
  3. के साथ बदलें: 'level' => E_ALL & ~E_DEPRECATED & ~E_STRICT,
+0

PHP में समान 5.5.30 – giuseppe

0

समस्या यह है कि PHP संस्करण 5.4.21 से कम है E_STRICT त्रुटियों पर autoloader के साथ कोई समस्या नहीं है। (E_STRICT एक संकलन समय त्रुटि है)

https://bugs.php.net/bug.php?id=65322

मैं कुछ पुराने परियोजनाओं पर ठीक उसी मुद्दे का सामना करना पड़ा है, और यह 2.7.4 में निश्चित होती है।

https://github.com/cakephp/cakephp/issues/7376

तो वास्तविक समाधान कम से कम 5.4.21 में अपग्रेड करें या CakePHP 2.7.4

+1

PHP 5.5 के साथ एक ही समस्या। कभी-कभी समस्या की जड़ कहीं और होती है। – giuseppe

+0

मुझे लगता है कि एक ही समस्या php 5.5 में भी सक्रिय थी –