Ребята, всем привет! Возник вопрос при работе конструкта. Например, у меня есть класс, в конструкте которого, происходит соединение с базой данных и создается объект конфига: PHP: class App { public $db; public $Config; public function __construct() { $this->config = new Config(); $this->db = new db($this->config->mysqli_config); } } Далее там например идет создается экземпляр класса Controller_News и выводятся новости. Вот например класс новостей, который наследует класс App, в конструкте которого, создается объект модели новостей: PHP: class Controller_News extends App { public function __construct() { parent::__construct(); $this->modelNews = new Model_News(); } public function Show_News() { $ResultNews = $this->modelNews ->GetListNews($this->config->LimitNews); } } Для того, чтобы я мог использовать в данном классе объект конфига, мне нужно в конструкте вызвать parent::__construct();. Все работает, все хорошо. Но возникает вопрос в том, что конструкт класса App получается срабатывает два раза. В первый раз при создании класса App, второй раз при создании класса Controller_News. Получается, что если у меня в конструкте класса App будут какие-либо действия, проверки, операции и т.д. (разбивка урла, определение языка, подключение языкового файла и т.д), то все это будет выполняться несколько раз, я правильно понимаю? Если да, то как избежать такого, как например по-другому можно создать и использовать Model_News?
Ну так не должен контроллер наследоваться от приложения. Приложение создаёт нужный контроллер и запускает его. А для всяких соединений с БД есть другие паттерны, которые надо бы изучить: Registry, Service Locator, Dependency Injection Container. Прежде чем изобретать своё MVC, если уж так хочется, поищите информацию о том, как это опытные люди делают. Хоть мои коллеги-модераторы и раскритиковали тут его, я бы посоветовал https://elisdn.ru/blog/113/psr7-framework-http от @ElisDN. P.S. только не надо снова поднимать тему с критикой, я не пытаюсь её (критику) оспорить, но в этом курсе есть чему поучиться. Идеальных материалов в принципе нету.