4.6 Ядро WordPress. Функции wp_favicon_request() и wp_maintenance()

Данные функции располагаются в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_favicon_request() Функция «wp_favicon_request()» — данная функция отображает «favicon» сайта. Это происходит в том случае, когда в строке запроса встречается подстрока «/favicon.ico». При этом в дальнейшей работе скрипта нет необходимости. В версиях WordPress 5.4 и выше использование этой функции запрещено. Описание wp_maintenance() Функция «wp_maintenance()»… Подробнее »

4.5 Ядро WordPress. Функция wp_check_php_mysql_versions()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_check_php_mysql_versions Функция «wp_check_php_mysql_versions()» — проверяет текущие версии PHP — интерпретатора и базы данных. Он использует две глобальные переменные «$required_php_version» и «$wp_version». Первая переменная хранит версию PHP — интерпретатора, требуемую для работы CMS WordPress. Вторая переменная хранит рабочую версию WordPress. Проверяем текущую версию PHP… Подробнее »

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

В стандартной редакции WordPress файл ядра «load.php» загружается первым. Так как количество функций в этом файле очень большое, то каждая их них описана отдельно. Функция wp_check_php_mysql_versions() Функции wp_favicon_request() и wp_maintenance() Функции timer_start() и timer_stop() Функция wp_debug_mode()

4.3 Ядро WordPress. Функция wp_fix_server_vars()

Функция «wp_fix_server_vars()» располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_fix_server_vars() Функция «wp_fix_server_vars()» — данная функция анализирует глобальную переменную «$_SERVER» и, при необходимости, исправляет значения некоторых элементов этого массива. Первым делом объявляется глобальная переменная «$PHP_SELF». В ней хранится имя файла текущего выполняемого скрипта, относительно корня документа. То есть, когда серверу отправляется подобный запрос… Подробнее »

4.2 Ядро WordPress. Функция wp_unregister_GLOBALS()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_unregister_GLOBALS() Функция «wp_unregister_GLOBALS()» — эта функция удаляет из суперглобального массива «$GLOBALS» лишние суперглобальные массивы. Прежде чем перейти к разбору этой функции, хочу сказать, что массив «$GLOBALS» способен хранить ссылки на на все переменные, определенные в данный момент в глобальной области видимости скрипта. Имена… Подробнее »

4.1 Ядро WordPress. Функция wp_get_server_protocol()

Данная функция располагается в файле «load.php». Полный путь к нему таков: корневая папка сайта/wp-includes/load.php Описание wp_get_server_protocol() Функция «wp_get_server_protocol()» — выясняет какой протокол соединения с сервером используется. Для этого данная функция обращается к элементу глобального массива «$_SERVER». В качестве ключа используется выражение «SERVER_PROTOCOL». В этом элементе хранится информация об имени и версии протокола. Результат сохраняется в переменной «$protocol». После… Подробнее »

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

Теперь мы приступаем к изучению ядра WordPress. Начнём с файла «load.php». В стандартной редакции WordPress именно этот файл ядра загружается первым. Так как количество функций в этом файле очень большое, то каждая их них описана отдельно. Функция wp_get_server_protocol() Функция wp_unregister_GLOBALS() Функция wp_fix_server_vars() Функция wp_check_php_mysql_versions() Функции wp_favicon_request() и wp_maintenance() Функции timer_start() и timer_stop() Функция wp_debug_mode()

Ядро WordPress. Этапы его разбора и изменения.

Подготовительный этап окончен. Были написаны три класса. Это класс «GlobalVariables» , класс «AutoLoader» и класс «Exceptions». Первый класс необходим для хранения информации глобальных переменных. Второй класс используется для подключения всех необходимых файлов ядра. При этом возможно подключение как пакета файлов, так и одиночных файлов. Третий класс перехватывает сообщения о возникающих ошибках, обрабатывает их и выводит на экран монитора.… Подробнее »

3.9 Класс «AutoLoader». Подключение классов и функций.

Теперь мы добрались до методов, которые отвечают за автоматическое подключение классов и методов. Они работают опираясь на данные имеющейся карты классов. Метод findFile() и Метод loadClass() Методы loadFile(), loadGroupFiles() и loadAllFiles() Метод __invoke() Метод findFile() и Метод loadClass() Метод «findFile()» — этот метод возвращает путь к файлу, в котором расположен класс «$class». Метод «loadClass()» — данный метод подключает… Подробнее »

3.8 Класс «AutoLoader». Манипуляции с картой классов

В принципе все манипуляции с картой классов сводятся к трём методам. Они описаны ниже. Их не так много потому, что нет особой надобности во внесении в каких-то крупных изменений в карту классов. Карта ведь создаётся автоматически, а потому она составлена именно так, как нам это необходимо. Метод writeToFile() Метод addClassMapFromFile() и addClassMapFromDir() Метод writeToFile() Этот метод манипуляции записывает… Подробнее »

Проект «Wordshift CMS»

Данный проект является модификацией системы управления сайтом «WordPress». Скачать файлы проекта «Wordshift CMS» можно тут: https://github.com/ellizii/Wordshift Этот проект постоянно дополняется. Полное описание всех классов и функций вы найдёте на этом сайте в разделе «WEB«

3.7 Класс «Autoloader». Формирование полной карты классов. Метод generateClassMap()

В данной статье я подробно рассмотрю ключевой метод создания карты классов «generateClassMap()». Метод generateClassMap() Это метод самостоятельно создаёт карту классов. Сначала создаётся пустой массив «$newClassMap». Он будет заполняться необходимыми данными. Далее запускаем метод «discoverFiles()». После того, как данный метод заполнил массив «files«, можно приступить к его перебору с помощью конструкции «foreach». В процессе перебора создаются два массива «$classMatch»… Подробнее »

3.5 Класс «Autoloader». Работа с папками

В данной статье мы познакомимся с методами класса «Autoloader«, которые будут сканировать все вложенные папки на наличие файлов «.php», а также выполнять некоторые иные манипуляции. Вся работа с папками ляжет на следующие четыре метода: Метод getMapDirectory() Метод hasMapDirectory() Метод removeMapDirectory() Метод addMapDirectory() Метод getMapDirectory() Этот метод возвращает содержимое массива «classMapFrom«. В нём хранится список папок (директорий), которые потом… Подробнее »

3.6 Класс «Autoloader». Работа с файлами

В данной статье мы познакомимся с методами класса «Autoloader«, которые будут будут искать все файлы «.php» в папках и сохранять пути к ним в массиве. Вся работа с файлами ляжет на следующие методы: Метод getFiles() Метод hasFiles() Метод addFiles() Метод discoverFiles() Метод getFiles() Этот метод возвращает содержимое массива » files «. В нём хранится список файлов «.php», которые… Подробнее »

3.4 Класс «Autoloader». Карта классов

Карта классов позволяет автоматически подключать любой файл «.php» проекта. А это избавляет разработчика от лишних трудов. Прописывать путь к каждому файлу (особенно если их десятки, а может и сотня) — это очень утомляет. Поэтому для работы с картой классов нам понадобятся несколько методов. Метод getClassMap() Метод addClassMap() Метод addToClassMap() Методы removeClassMap() и removeFromClassMap() Метод getClassMap() Данный метод возвращает… Подробнее »

3.3 Класс «AutoLoader». Регистрация автозагрузчика

Регистрируем класс «AutoLoader» в качестве метода автозагрузки. Для этого создаётся метод «register()», который использует функцию «spl_autoload_register()». Метод register() Метод unregister() Функция spl_autoload_register() Дело в том, что регистрация автозагрузчика возможна только с помощью функции «spl_autoload_register()«. Функция «spl_autolod_register()» содержит три параметра: Вызываемая функция (метод) Флаг использования исключений (в случае неудачи) Флаг постановки в начало очереди выполнения В качестве первого аргумента,… Подробнее »

3.2 AutoLoader. Инициализация

Приступим к созданию класса «Autoloader». Начнём с объявления всех необходимых переменных, а затем опишем метод инициализации класса. Переменные класса Инициализация класса Переменные класса Для этого в папке «core» каталога «includes» создаём файл «AutoLoader.php» В нём сразу укажем пространство имён «Wp\Core» и имя класса «AutoLoader». Далее объявляем переменные «$instance» и «$exception». В первой переменной будет храниться ссылка на текущий… Подробнее »

Класс «AutoLoader». Часть 2

Методы сканирования директорий, используемых при формировании карты классов Методы поиска «.php» файлов, используемых при формировании карты классов

3.1 Класс «AutoLoader»

Для чего нужен автозагрузчик? Он позволяет подключить все необходимые для работы CMS файлы. Причём подключение происходит автоматически, при запуске системы. Это избавляет разработчика от необходимости подключать все файлы вручную. Конечно когда этих файлов не так много, то от автозагрузчика пользы мало. Но если количество этих файлов перевалит за сотню? А за две сотни? Вот тут помощь автозагрузчика весьма… Подробнее »