Yii 扩展请求组件 returns 500 错误

Yii Extending Request Component returns 500 error

我正在尝试扩展 Yii2 的 Request 组件,就像我们之前的 Yii1 项目扩展 CHttpRequest 一样,但无论我尝试什么,我得到的只是一个 500 错误。我的配置如下:

'components' => [
    'request' => [
        'class' => 'app\components\MY_HttpRequest',
        'cookieValidationKey' => '...',
    ],
    ...
],

然后在 //components/MY_HttpRequest.php 中,即使空 class 也只会调用父方法:

<?php

//namespace app\components;
namespace app\components\MY_HttpRequest;

use Yii;

class MY_HttpRequest extends yii\web\Request {
}

它显示 500 错误,所以我无法真正调试它,因为我没有任何反馈。我在 Google 上搜索了如何扩展 Request 组件,但我发现的只是一个关于如何扩展 Response component 的问题,我已经在使用该方法但没有成功。

没有关于错误的详细信息(仅以 example.com 为例):

此外,如果我像这样更改此行:

'class' => 'app\components\MY_HttpRequestaaaaaaaaaaaaaa',

我收到找不到文件的错误,所以我知道正在加载文件。

将您的 class 和文件名更改为 MYHttpRequest 就可以了

'components' => [
    'request' => [
        'class' => 'app\components\MYHttpRequest',
        'cookieValidationKey' => '...',
    ],
]

和components/MYHttpRequest.php

namespace app\components;

class MYHttpRequest extends \yii\web\Request {

}

原来我刚刚忘记了 "extend" 语句中的一个小反斜杠。

class MY_HttpRequest extends yii\web\Request

应该是

class MY_HttpRequest extends \yii\web\Request