欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

extends CakeRequest,重写is方法

程序员文章站 2024-02-05 09:48:46
...
背景:Cakephp开发环境版本是2.3.8,服务器的cakephp版本是2.3.5,测试好的代码上传到服务器上后发现总爆如下的警告:

Warning (2): strtolower() expects parameter 1 to be string, array given [CORE\Cake\Network\CakeRequest.php, line 478]

经过比对2.3.8和2.3.5发现,2.3.8比2.3.5的function is多了如下的代码:

         (( = ((, 'is'),  (()) > 0

虽然通过直接修改lib里的文件就能解决问题,但考虑到以后升级等问题,于是决定自定义这个CakeRequest,重写is函数。
过程如下:

在app/Config/bootstrap.php中加入如下代码:

 APP . 'Lib' . DS . 'Network' . DS . 'CakeRequest.php'Error:  Class 'CakeRequest' not found 
require
APP . 'Lib' . DS . 'Network' . DS . 'AppCakeRequest.php';

在app/Lib/目录下新建Network目录, 将库里(lib/Cake/Network/)的CakeRequest.php拷贝至这个目录中,

然后在这个目录里添加AppCakeRequest.php:

controller`.
 *
 * @package       Cake.Network
 
 AppCakeRequest 
      is(
         (( = ((, 'is'),  (()) > 0
         = ( (!(->_detectors[  = ->_detectors[ ((['env' ((['value' env(['env']) == ['value' ((['pattern' (bool)(['pattern'], env(['env' ((['options' = '/' . ('|', ['options']) . '/i' (bool)(, env(['env' ((['param' = ['param' = ['value' (->params[]) ? ->params[] ==  :  ((['callback']) && (['callback' (['callback'],  

编辑app/webroot/index.php:

dispatch(
    new CakeRequest(),
    new CakeResponse()
);

-> AppCakeRequest(),
     CakeResponse(('charset' => Configure::read('App.encoding'

大功告成,错误不再爆了,偶是cakephp新手,欢迎拍砖。

参考:http://*.com/questions/8554536/extending-the-cakerequest-object

最后吐槽一下,今天终于算是把这个项目做完了,半年前应朋友的邀,接下这个Cakephp的网站项目,

虽然工期很轻松,足足给了我大半年的时间,而且朋友的需求也是断断续续给我的。

以前从来没接触过php,更别说cakephp,而且国内cakephp的资料比较少,很多问题都得去英文或者日文雅虎上找答案。

有时候真的想shi的心都有啊。

这实在是太浪费自己的碎片时间了,以后再也不会接这种私活了。

有空余时间不如学习下自己感兴趣的知识不是?

相关标签: aspnet 软件编程