Шаблон Реестр ООП? Доброго времени суток. Начал изучать ООП. Возник вопрос: Есть 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
Для того чтобы избавиться от контейнера $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 и можете вызывать объекты реестра более удобным способом.
Для того чтобы избавиться от контейнера $App и вызывать объекты реестра напрямую, вам нужно сделать следующее:
Измените класс App таким образом, чтобы методы класса Registry были доступны напрямую через статический метод класса App:<?phpnamespace 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 и можете вызывать объекты реестра более удобным способом.