Комментарии

Начало или продолжение сеанса в Joomla
( 0 Голосов )
Итак, вернемся к файлу index.php и рассмотрим в нем следующий ряд строк кода, приведенных в листинге ниже.
 
Методы getApplication () и initialise () из файла index.php:
// пометить состояние после загрузки в профилировщике
JDEBUG ? $_PROFILER->mark('afterLoad') : null;
 
// Получить экземпляр приложения
$app = JFactory::getApplication('site');
 
// Инициализировать приложение
$app->initialise();
 
// Пометить состояние после инициализации в профилировщике
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
He будем пока что обращать особого внимания на два оператора отладки JDEBUG в этом фрагменте кода. Ведь при нормальной работе они пропускаются. Эти операторы помогают точнее оценить производительность отдельных частей кода.
 
Итак, в данном фрагменте кода сначала создается объект приложения, сохраняемый в переменной $арр, а затем выполняется его метод initialise (). В результате создания объекта приложения загружается класс JSite из файла includes/application.php. Этот класс служит расширением класса JApplication. Аналогичный класс JAdministrator из файла administrator/includes/application.php служит для создания объекта приложения в административной части веб-сайта.
 
С этого момента, собственно, и начинается сам сеанс работы с веб-сайтом Joomla. Мы загружаем уже имеющийся сеанс или создаем новый, если ничего другого не найдено. Напомним, что Joomla ничего не известно о том, что происходило в предыдущих циклах выполнения команд, за исключением того, что было сохранено в сеансе работы или базе данных. Именно поэтому так важно найти существующий сеанс, чтобы перенести информацию из предыдущего цикла в следующий. Кроме того, в данный момент загружается файл configuration .php, предоставляющий доступ к базе данных Joomla и другим настройкам данного конкретного веб-сайта.
 
В данный момент выполняется еще одна важная операция: создание поля request Time. Это поле из класса JApplication содержит отметку даты и времени по Гринвичу, с которых начинается цикл выполнения запросов. Если же требуется поле для отметки текущих даты и времени, этого нетрудно добиться с помощью вызова метода $арр-> requestTime () или JFactory: : get Application () ->requestTime (). В отличие от результата вызова метода now (), значение подобной отметки остается постоянным в течение всего цикла выполнения команд.
 
Далее выполняется метод initialise (), инициализирующий приложение. А поскольку мы находимся в классе JSite, то данный метод выполняется из файла includes/application.php. Основное назначение этого метода — сначала выяснить, какой именно язык требуется пользователю, а затем загрузить объект этого языка, чтобы правильно перевести текстовые строки в пользовательской части веб-сайта. А в самом конце этого метода вызывается также метод initialise () из родительского класса (parent:: initialise ($options);). Это приводит к вызову метода initialise () класса JApplication из файла libraries/joomla/аррlication/аррlication.php, чтобы выяснить, какой именно редактор подходит данному пользователю.
 

Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код