@yanminibaev

Laravel. Не понимаю логику кода?

Обучаюсь по урокам "Фреймворк Laravel с Нуля до Профи". В принципе, все понятно, кроме одного кода...

IndexController
class IndexController extends SiteController {
    public function __construct() {
        $menu = new \Corp\Repositories\MenusRepository(new \Corp\Menu);
        parent::__construct($menu);
        $this->bar = 'right';
        $this->template = env('THEME').'.index';
    }
}


MenusRepository
<?php
namespace Corp\Repositories;

use Corp\Menu;

class MenusRepository extends Repository {
	public function __construct(Menu $menu) {
		$this->model = $menu;
	}
}

?>


Так вот...
Я не понимаю функционал этого кода.
parent::__construct(new \Corp\Repositories\MenusRepository(new \Corp\Menu));

Я знаю, что это Вызов конструктора родительского класса.
Вопрос по Laravel.

$menu = new \Corp\Repositories\MenusRepository(new \Corp\Menu); Для чего?
В итоге получается:
public function __construct(Menu new \Corp\Repositories\MenusRepository(new \Corp\Menu)) 
{
	$this->model = $menu;
}
  • Вопрос задан
  • 742 просмотра
Решения вопроса 2
MasterRO
@MasterRO
Middle Laravel Developer
Какому бреду вас учат. Лучше читайте доку и смотрите ларакасты(https://laracasts.com). Никто в ларе так не делает.
Функцию env вообще в коде юзать нельзя. Все переменные окружения нужно переносить в конфиги и желательно указывать дефолтные конфиги.
Но по факту если Вам непонятна сама логика то подучите OOP и SOLID
Ответ написан
@bkosun
Я не понимаю функционал этого кода, обЪесните пожалуйста.

parent::__construct(new \Corp\Repositories\MenusRepository(new \Corp\Menu));


Вызов конструктора родительского класса

php.net/manual/ru/language.oop5.decon.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AmdY
@AmdY
PHP и прочие вебштучки
Автор этого кода не владеет ни php, ни laravel на должном уровне. Лучше читайте оригинальную документации и сотрите ларакасты. А ваш вопрос связан с php.
Этот код вызывает конструктор родительского класса, при этом интерфейс конструктора наследника отличает от родительского, что нарушает принципы SOLID.
php.net/manual/ru/language.oop5.decon.php
Ответ написан
Ваш ответ на вопрос

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

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