Файл «load.php». Часть 2

load_php

wp_check_php_mysql_versions()

Функция “wp_check_php_mysql_versions()” – проверяет текущие версии PHP – интерпретатора и базы данных. Он использует две глобальные переменные “$required_php_version” и “$wp_version”. Первая переменная хранит версию PHP – интерпретатора, требуемую для работы CMS WordPress. Вторая переменная хранит рабочую версию WordPress. Проверяем текущую версию PHP – интерпретатора с помощью функции “phpversion()“. Используя функцию “version_compare()“, сравниваем версию PHP – интерпретатора, требуемую для работы CMS, с текущей версией.

load-5

Если текущая версия меньше требуемой, тогда формируем страницу с ошибкой. Функция “header()” устанавливает все необходимые для страницы заголовки. При формировании любой страницы заголовки указываются в первую очередь. После заголовков идёт содержимое страницы. И только потом всё это передаётся браузеру. В данном случае для вывода сообщения и прекращения работы скрипта используется функция “exit()“.

Если текущая версия и требуемая оказались равными или текущая версия оказалась больше требуемой , тогда двигаемся дальше. Функция “extension_loaded()” проверяет загружено то расширение, имя которого было передано в качестве параметра. Если не будет выполнено хотя бы одно из расширений или же файл “db.php” будет отсутствовать, тогда будет сформирована страница с ошибкой. В формировании этой страницы принимает участие функция “wp_die()“, которая описывается в файле “functions.php”. Затем работа скрипта прекращается. Если все проверки были пройдены, тогда работа скрипта продолжается.

wp_favicon_request() и wp_maintenance()

load-6

Функция “wp_favicon_request()” – данная функция отображает “favicon” сайта. Это происходит в том случае, когда в строке запроса встречается подстрока “/favicon.ico”. При этом в дальнейшей работе скрипта нет необходимости.

Функция “wp_maintenance()” – выводит сообщение о том, что сайт находится на техническом обслуживании. В первую очередь проверяется существование самого файла “.maintenance”. Если его нет или же CMS WordPress находится в процессе установки, тогда работа функции прекращается. Но если система была установлена, а файл “.maintenance” обнаружен, тогда он подключается.

Сама функция использует глобальную переменную “$upgrading”. В ней хранится время (в секундах) окончания технического обслуживания. Если текущее время больше времени “$upgrading” и разница между ними 10 минут и более, то режим технического обслуживания сайта считается оконченным. В этом случае работа функции прекращается.

Если режим технического обслуживания сайта действует, тогда, используя функцию “apply_filters()“, проводится дополнительная проверка. Если данная функция возвращает значение “FALSE”, тогда режим технического обслуживания считается оконченным. В противном случае формируется страница с сообщением о том, что сайт находится на техническом обслуживании. Это происходит либо при подключении файла “maintenance.php”, либо при помощи функций “header()” и “wp_die()”.

timer_start() и timer_stop()

load-7

Функция “timer_start()” – сохраняет в глобальной переменной “$timestart” время начала работы (в секундах) WordPress. Это время можно получить, используя функцию “microtime()“.

Функция “timer_stop()” – фиксирует время окончания работы скрипта. Оно сохраняется в глобальной переменной “$timeend”. Полное время работы скрипта представляет разницу между “$timeend” и “$timestart”. Полученный результат форматируется при помощи функции “number_format_i18n()” или “number_format()” с указанием количества знаков (“$precision”) после точки для дробных чисел. Если переменная “$display” равно “1” или “TRUE”, тогда отформатированный результат выводится на экран монитора, в противном случае он просто возвращается функцией.

wp_debug_mode()

load-8

Функция “wp_debug_mode()” – проверяет режим работы CMS WordPress. Если система работает в режиме разработки, тогда определённым образом настраивается документирование и вывод ошибок, возникших при работе скрипта.

Сначала запускается функция “apply_filters()“. Если результат её работы равен “FALSE”, то дальнейшая проверка прерывается. В ином случае проверяется именная константа “WP_DEBUG”. Эта константа объявляется в файле “wp-config.php“. При её значении равным “FALSE”, скрипт работает в обычном режиме. При этом ошибки, что попадут в отчёт задаются функцией “error_reporting()“. Если значение этой константы равно “TRUE”, тогда WordPress работает в режиме разработки, а значит необходимо отредактировать некоторые настройки.

Во-первых в отчет попадают все ошибки ” error_reporting(E_ALL) “. Во-вторых проверяется константа “WP_DEBUG_DISPLAY”. Она объявляется в файле “default-constants.php”. Значение “TRUE” разрешает отображать сообщения об ошибках на экране монитора. Для этого используется функция “ini_set(‘display_errors’, 1)“. Значение “FALSE” не позволяет отображать ошибки. В этом случае используется “ini_set(‘display_errors’, 0)“.

Далее анализируем именную константу “WP_DEBUG_LOG”. Значение данной константы переводится в строковый формат при помощи конструкции “(string)”. Затем, при помощи функции “in_array()“, проверяем, присутствует ли в массиве “array()” значение этой константы. Если да, тогда указываем путь к лог-файлу, который хранится в переменной “$log_path”. Иначе этой переменной присваивается значение “FALSE”. Если “$log_path” представляет собой строку, тогда при помощи функции “ini_set()” CMS назначает журнал ошибок. Именно в нём будут вестись записи проблем, возникших при работе WordPress.

В конце функции “wp_debug_mode()” осуществляется последняя проверка. Если скрипт находится в процессе установки или же текущий запрос является AJAX/JSON запросом, тогда сообщения о возникших ошибках не отображаются.

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Sign up
Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.