3
Я хочу расширить класс yii \ web \ Response. Поэтому я создал новый класс Response в папке компонентов, и я пытаюсь перезаписать метод отправки.Yii 2.0 Расширение базовых классов
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',
],
Почему это не будет работать так?
хорошая идея, но это только переопределяет свойства при (Yii :: $ приложение) не основные классы – Shqear
Правда, не пробовал, но, возможно, что работает при установке его с помощью controllerMap http://www.yiiframework.com/doc-2.0/yii-base-module.html#$controllerMap-detail – jagsler
@Shqear - его ответ отменяет основной класс! Вы говорите ему использовать '\ app \ components \ Response' вместо' \ yii \ web \ Response'. Миссия выполнена согласно вашему Вопросу. Если есть что-то, о чем это не позаботилось, пожалуйста, обновите свой вопрос. В своем комментарии вы сказали «не основные классы». '\ yii \ web \ Response' является основным классом, так что еще вам нужно? Doc on Response: http://www.yiiframework.com/doc-2.0/yii-web-response.html - Источник ответа: https://github.com/yiisoft/yii2/blob/master/framework/web/Response .php –