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 файлы. Причём подключение происходит автоматически, при запуске системы. Это избавляет разработчика от необходимости подключать все файлы вручную. Конечно когда этих файлов не так много, то от автозагрузчика пользы мало. Но если количество этих файлов перевалит за сотню? А за две сотни? Вот тут помощь автозагрузчика весьма… Подробнее »

2.1 Класс «Exceptions»

В данной статье я опишу класс обработки ошибок, который буду использовать в последующем. Использование данного класса позволяет зафиксировать большинство ошибок, которые могут возникнуть при работе CMS. Итак создадим файл «Exceptions.php» в папке «site_address/includes/core/». В нём пропишем класс «Exceptions». Обозначим пространство имён «Wp\Core». Импортируем класс «ErrorException» с помощью оператора «use». В теле класса пропишем две переменные «$instance» и «$response».… Подробнее »

1.1 Класс «GlobalVariables»

Прежде чем перейти к подробному разбору ядра WordPresss, необходимо провести некоторые подготовительные работы. Так как я намереваюсь вносить изменения в ядро CMS, то необходимо определиться со структурой папок в моём проекте. Она будет следующей: Папка «admin» будет содержать в себе все файлы, необходимые для работы административной панели. Папка «content» включает в себя такие папки как: «languages», «plugins», «uploads».… Подробнее »

5. Разбираем открытый код WordPress. Подготовка к запуску ядра CMS

В прошлой статье мы разбирали файл «wp-load.php». При разборе выяснили, что файл «wp-config.php» является индикатором установки WordPress. Если его нет, то запускается процесс установки CMS. Но если он уже существует, что тогда? Вот в этом сейчас и будем разбираться. Итак файл «wp-config.php» был обнаружен и подключён. В нём сначала определяются шесть именных констант необходимых для работы с базой… Подробнее »

4. Разбираем открытый код WordPress. Запуск установки CMS

В прошлой статье мы разобрали файл «.htaccess». После того как сервер прошёлся по этому файлу и выполнил все инструкции, он передаёт управление файлу «index.php». Если мы откроем этот файл, то увидим следующее: В этом файле определяется именная константа «WP_USE_THEMES». Определение происходит с помощью функции «define()». Эта константа разрешает загрузку темы WordPress. Затем подключается файл «wp-blog-header.php». Подключение происходит при… Подробнее »

MOD_REWRITE. Полный обзор. Часть 1

Модуль mod_rewrite является частью серверного программного обеспечения Apache. Этот модуль использует механизм перезаписи URL «на лету» основанный на синтаксическом анализаторе регулярных выражений PCRE. Переписать правило можно используя файл httpd.conf или файл .htaccess. Модуль mod_rewrite — это очень мощный модуль. Он обеспечивает возможность манипулирования URL-ом. С его помощью можно выполнить почти все типы перезаписи URL, которые могут потребоваться. Модуль… Подробнее »

3. Разбираем открытый код WordPress. Инициализация системы. Файл .htaccess

Когда нам надо попасть на сайт мы используем адресную строку. В ней вводим адрес сайта, жмём клавишу «Enter’. А можно просто кликнуть на ссылку. В обоих случаях будет отправлен запрос серверу. Как только наш запрос добрался до сервера, тот обращается к файлу .htaccess. Этот файл содержит целый ряд инструкций, которые указывают что делать серверу, как это делать и… Подробнее »

2. Разбираем открытый код WordPress. Структура папок

Я буду вносит изменения в движок WordPress версии 5.2.4. На данный момент это самая свежая версия CMS. Скачать его можно на официальном сайте. Движок WordPress имеет следующую структуру: Папка «wp-admin» содержит различные файлы, отвечающие за работу административной части сайта. Папка «wp-content» содержит языковые файлы, файлы плагинов и тем. Также в данной папке сохраняются все файлы, загружаемые пользователем. Папка… Подробнее »