@Brainbao

Какой выбрать вариант избавления от глобальных переменных в ООП PHP приложении?

1. Есть основной движок, написанный в процедурном стиле, которым занимаются другие разработчики. Он изобилует глобальными переменными.
2. Есть мое дополнение для этого движка, которое я стараюсь писать в ООП стиле.
Вопрос: чтобы не писать в каждом методе каждого класса global $variable, $variable1 и т. д., какой из способов оптимальнее:
1) Сделать трейт и добавлять его в классы, в которых требуется доступ к глобальным переменным, с подобным методом:
public function &__get($name)
	{
		return $GLOBALS[$name];
	}

2) Или в каждом методе добираться до глобальных переменных с помощью:
$variable = $GLOBALS['variable'];
$variable1 = $GLOBALS['variable1'];
// и т. д.

3) Или реализовать простенький DJ-контейнер и добавить туда $GLOBALS в качестве зависимости, чтобы в нужных местах обращаться к ячейке контейнера?
4) Ваши варианты?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Определиться, что мы пишем - ООП или говнокод с глобалсами.
Во втором случае совершенно без разницы, какие оттенки запаха будут у этого дерьма.

В первом случае выкинуть весь этот ад и делать по-человечески, передавая переменные в конструктор/методы в качестве параметров.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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