@dima0077

Parent::__construct для чего?

не могу понять для нужен parent::__construct

class ProductController extends Controller
{
    private $service;
 
    public function __construct($id, $module, ProductManageService $service, $config = [])
    {
        $this->service = $service;
        parent::__construct($id, $module, $config); //кому обращается parent
    }
 
    ...
 
    public function actionCreate()
    {
        $form = new ProductCreateForm();
 
        if ($form->load(Yii::$app->request->post()) && $form->validate()) {
            $id = $this->service->create($form);
            return $this->redirect(['view', 'id' => $id]);
        }
 
        return $this->render('create', [
            'model' => $form,
        ]);
    }
}
  • Вопрос задан
  • 4444 просмотра
Пригласить эксперта
Ответы на вопрос 2
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
parent обращается к классу Controller от которого вы наследуетесь.
Он устанавливает id контроллера и принадлежность контроллера к модулю.
А так же передает конфигурацию родительскому классу Component

https://github.com/yiisoft/yii2/blob/f9fd4da8de6c0...
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
человеку понадобилась переменная в контролере
честно говоря не понимаю, зачем именно __construct переопределять, мне кажется подобные вещи правильнее через behavior делать. Но тут 3 варианта:
или есть смысл, но его не видно по Вашему примеру
или автор отлично знает php и не знает yii
или автору так было проще и не .....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы