Шаблон Реестр ООП? Доброго времени суток. Начал изучать ООП. Возник вопрос:
Есть class APP, в нём как раз есть контейнер статический $App возвращает объекты класса Registry.
Обращаться из контроллера приходится вот такuse vendor\core\App;
App::$App->NameClass->getUser();
Вопрос. Как мне избавиться от контейнера $App, что бы я вызывал подключаемые объекты реестра вот так:use vendor\core\App;
App::NameClass->getUser();
// или вот так
use vendor\core\App;
App->NameClass->getUser();
Код класса App

21 Авг 2019 в 07:02
198 +1
0
Ответы
1

Для того чтобы избавиться от контейнера $App и вызывать объекты реестра напрямую, вам нужно сделать следующее:

Измените класс App таким образом, чтобы методы класса Registry были доступны напрямую через статический метод класса App:<?php
namespace vendor\core;
use vendor\core\Registry;
class App {
public static function __callStatic($name, $arguments) {
return call_user_func_array([Registry::instance(), $name], $arguments);
}
}Теперь вы можете вызывать объекты реестра напрямую через класс App:use vendor\core\App;
App::NameClass->getUser();

Таким образом, вы избавились от контейнера $App и можете вызывать объекты реестра более удобным способом.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир