PHP экземпляр класса в основной программе, доступ из функций - PullRequest
0 голосов
/ 17 июля 2011

У меня болит голова от чтения о синглетонах и шаблонах, и должен быть более простой способ ...

У меня есть замечательная вспомогательная функция log_it ($ severity, $ message), которая используется повсюдуряд программ.Он создает код для добавления записей журнала для конкретного приложения в общий журнал на диске.Когда я загружаю функцию один раз в глобальном масштабе (используя require), она доступна во всей программе, в любой функции.

Я преобразую приложение в целом в объектную ориентацию по различным причинам.Я хотел бы создать класс logger, который имеет метод log_it ($ severity, $ message).

Я хотел бы создать объект один раз в глобальной области видимости и использовать его изнутри функций.Я бы предпочел не объявлять объект глобальным в каждой функции, где я хочу его использовать.Другими словами, я хочу эмулировать глобальную видимость простой необъектной функции, но с использованием класса.То, что я хотел бы сделать, это иметь $ log = new logger () в основной программе и затем вызывать $ log-> log_it () из любой точки мира без дальнейших церемоний.

Надеюсь, есть простой способсделать это?

1 Ответ

1 голос
/ 17 июля 2011

Вы можете объявить log_it как статический метод.И звоните из любого места, куда хотите, без необходимости создавать экземпляр класса.вот так:

logger::log_it()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...