Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii 2.0如何扩展核心类_Yii_Yii2_Yii Components - Fatal编程技术网

Yii 2.0如何扩展核心类

Yii 2.0如何扩展核心类,yii,yii2,yii-components,Yii,Yii2,Yii Components,我想扩展类yii\web\Response。因此,我在文件夹components中创建了一个新的类响应,并尝试覆盖send方法 namespace app\components; use Yii; class Response extends \yii\web\Response{ public function init(){ parent::init(); } /** * Sends the response to the client

我想扩展类yii\web\Response。因此,我在文件夹components中创建了一个新的类响应,并尝试覆盖send方法

namespace app\components;

use Yii;

class Response extends \yii\web\Response{

    public function init(){
        parent::init();
    }

    /**
     * Sends the response to the client.
     */
    public function send()
    { ...
最后,我尝试通过在配置中导入新的响应类来导入它

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'import'  => [
            'class' => 'app\components\Response',       
        ], 
为什么它不能像这样工作?

像这样试试:

'components' => [
    'response' => [
        'class' => 'app\components\Response',
    ],

好主意,但这只是覆盖了(Yii::$app)下的属性而不是核心类strue,还没有尝试过,但当通过controllerMap@Shqear设置它时,这可能会起作用-他的答案确实覆盖了核心类!您告诉它使用
\app\components\Response
而不是
\yii\web\Response
。按照你的问题完成任务。如果有什么问题没有解决,请更新您的问题。在你的评论中,你说“不是核心类”
\yii\web\Response
是一个核心类,那么您还需要什么呢?响应文档:-响应源:@WadeShuler请注意,这不是我的问题,但是,我正在寻找一种方法,在不操纵源代码的情况下用我自己的替换yii2中的一个核心类,因此它提供了一种简单的方法来覆盖一个particuler类,以便在所有其他核心类中使用它,而不扩展它们,但不幸的是,Yii2不支持这样的事情,在当前的情况下这是不可能的version@Shqear-我不太明白你说的不操纵源代码是什么意思。您可以扩展任何核心类,并将其放在
/components/BaseController.php
和普通控制器中,这些控制器“扩展”该类而不是
yii/web/controller/
。您必须更改要在其中使用的每个控制器中的名称空间/路径,否则它们将指向错误的文件。-我认为你想要什么是不可能的。有没有什么框架可以实现你所说的?