Альтернатива передаче одного и того же параметра каждой функции

Я создал шаблон реестра для своего проекта, который может создать экземпляр или получить существующую ссылку на любой объект.

Тем не менее, теперь я чувствую, что должен пройти $registry в значительной степени все функции и конструкторы в проекте, так как большинство из них потребует создания экземпляров других классов самостоятельно. Это само по себе не так уж плохо, именно это и должен делать реестр, но я бы хотел сохранить свои функции более «чистыми», требуя только параметров, уникальных для него.

Я мог бы расширить классы до родителя, который имеет $registry объект, но поскольку мы имеем дело с PHP, и вы ограничены расширением только одного класса, это не очень хорошее решение.

Вот пример, чтобы проиллюстрировать это лучше.

Class controller {
__construct($registry,other parameters) { check conditions; addView($registry); }
addView( viewObject($registry);
}

Любые идеи, чтобы сохранить дизайн более элегантным, не пропуская $registry все время?

0

Решение

Я решил использовать $ GLOBALS [‘registry’] для моего проекта.

Это единственный глобальный используемый и разрешенный на нем. В то время как глобальные перемены не одобряются, потому что это может привести к ошибкам и усложнить поддержку кода, тот факт, что вам потребуется реестр для 99% функций, позволил проекту очистить систему от передачи реестра всем функциям, и это было единственным Глобальный значительно снижает риск неправильного использования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]