【发布时间】:2012-05-12 00:17:11
【问题描述】:
我从一个没有引用 Debugger 类的文件中得到标题中引用的错误。如果我手动导入调试器,错误仍然出现。最后一个}中错误引用的行号结束了文件中的类定义。 } 后面没有任何内容(也没有 ?>)。据我所知,我收到错误的文件并没有直接引用 Debugger(例如,没有明确使用 Debugger)。
这是堆栈跟踪:
( ! ) 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
【问题讨论】:
-
Component类是否使用Debugger?
-
不,我发现了错误。我展示的这个类实现了初始化方法。但它被实现为公共函数initialize($controller)。这是一个 E_STRICT 错误。我的设置正在捕捉这些错误。此错误导致它寻找调试器。我不确定为什么它不能自动加载它,但是将方法更改为 public function initialize(Controller $controller) 解决了我遇到的问题。
标签: php cakephp-2.0 public