我正在尝试使用自定义CakeResponse
课程,但是我目前的工作和当前搜索都没有让我找到实际使用的解决方案。
因此,让我们调用我的自定义CakeResponse
课程AppResponse
:
AppResponse
位于Lib/Network
<?php
App::uses('CakeResponse', 'Network');
class AppResponse extends CakeResponse {
}
基于此博文http://mark-story.com/posts/view/cakeresponse-in-cakephp-2-0,似乎应该能够使用此代码覆盖CakeResponse并使用自定义Response类
App::import('Lib', 'CustomResponse');
class AppController extends Controller {
protected $_responseClass = 'CustomResponse';
}
以下App::uses/import
语句集合不起作用
App::uses('AppResponse', 'Network');
App::uses('AppResponse', 'Lib/Network');
App::uses('AppResponse', 'Lib');
App::import('Lib', 'AppResponse');
class AppController extends Controller {
protected $_responseClass = 'AppResponse';
}
public function beforeRender() {
debug($this->_responseClass);
debug(get_class($this->response));
die();
}
这将输出:
AppResponse
CakeResponse
本书和CakePHP docs似乎表明可以覆盖CakeResponse类并使用您自己的自定义类。
如上所述,它似乎不起作用。
答案 0 :(得分:0)
解决此问题的方法是编辑webroot/index.php
文件并更改用于新自定义CakeResponse类的响应类。
解决方案:
App::uses('AppResponse', 'Lib/Network');
$Dispatcher = new Dispatcher();
$Dispatcher->dispatch(
new CakeRequest(),
new AppResponse()
);
注意:此解决方案is a tweet from Mark Story。