Глобальные объекты в Joomla 2.5 |
Некоторые объекты используются в стольких местах кода Joomla, что было бы целесообразно, чтобы они были легко доступны постоянно. Как упоминалось ранее, класс JFactory из файла libraries/joomla/factory.php загружается в тот момент, когда сценарий из файла libraries/joomla/import.php загружается по сценарию из файла includes/framework.php. Класс JFactory обеспечивает быстрый доступ к целому ряду объектов практически из любого места в программе. Все эти объекты перечислены в таблице ниже.
Кроме класса JDate, каждый из классов, перечисленных в таблице выше, должен иметь лишь один объект данного класса. Например, в пользовательской части веб-сайта должен быть только один объект приложения типа JSite, а в административной части — только один аналогичный объект типа JAdministrator. Аналогично должен быть только один объект типа JSession, JUser, JDatabase и т.д.
Для подобных случаев в объектно-ориентированном программировании нередко служат шаблоны проектирования, называемые "одиночкой" и "фабрикой" и обеспечивающие существование лишь одного объекта данного типа в любой заданный момент времени. И действуют они по очень простому принципу.
Рассмотрим этот принцип на примере применения объекта приложения. В классе JFactory содержится поле $аррlication, где хранится один объект приложения, которым нужно пользоваться в течение всего цикла выполнения команд. И когда потребуется объект приложения, он может быть получен по команде JFactory: : getApplication ().
При выполнении этой команды в классе JFactory сначала проверяется, имеется ли уже объект приложения в поле $аррlication. Если этот объект имеется, то он просто возвращается из данного поля. А если поле $application пустое, это означает, что в данном цикле мы впервые пытаемся получить доступ к объекту приложения.
В таком случае мы создаем новый объект приложения, сохраняем его в поле $application из класса JFactory, а затем возвращаем его из данного поля. Таким образом, единственный объект приложения подготавливается в поле $application из класса JFactory для последующего применения в любой момент, когда он может потребоваться.
Понравился материал? Пригодилась информация? Плюсани в социалки!
Теги:
|
Похожие новости | |