Задать вопрос
GM_pAnda
@GM_pAnda
Бездельник

Шаблон Реестр ООП?

Доброго времени суток. Начал изучать ООП. Возник вопрос:
Есть 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
<?php
	namespace vendor\core;

	use vendor\core\Registry;

	class App {
		public static $App;

		public function __construct(){
			self::$App = Registry::instance();
		}
	}
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
qonand
@qonand
Software Engineer
Как мне избавиться от контейнера $App, что бы я вызывал подключаемые объекты реестра вот так:

Главный вопрос зачем? Ваш класс $app - это вариация синглтона (хоть и довольно кривая), обеспечивающий в данной ситуации избежания дубликатов объекта Registry со всем содержимым.

App->NameClass->getUser();

Так Вы вообще не сделаете, есть либо статически методы, которые можно вызывать без создания объекта, либо обычные для вызова которых необходимо создавать объект. А Вы спрашиваете как вызвать обычный метод без создания класса, ответ - никак.
Хотите избавиться от класса App - тогда создавайте объект Registry и используйте его (хоть это и не очень хорошая идея)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы