Проект «WordShift». Добавляем класс «Load»

По | 14 июня, 2022
Load

Общая структура проекта

На данный момент проект «Wordshift» включает следующие файлы:

  • «index.php» — его содержание не отличается от содержания такого же файла WordPress.
  • «blog-header.php» — его содержание также не отличается от файла «wp-blog-header.php» WordPress.
  • «wp-load.php» — отличается от такого же файла WordPress тем, что содержит дополнительные именные константы.
  • «wp-config.php» — отличается от «wp-config.php» WordPress только тем, что в нём не определяется именная константа «ABSPATH», так как она уже была объявлена в файле «wp-load.php».
  • «wp-settings.php» — в этом файле вместо функции «require()» использован класс «AutoLoader». Все глобальные переменные теперь хранятся в классе «GlobalVariables».
  • «Autoloader.php» — располагается в папке «core».
  • «Exceptions.php» — располагается в папке «core».
  • «GlobalVariables.php» — располагается в папке «core».
  • «Response.php» — располагается в папке «core». В этом файле объявлен класс «Response», который пока оперирует одним методом «getInstance()«.

Содержание файла «wp-load.php»

В файл «wp-load.php» внесены следующие дополнительные константы:

  1. «DS» — это предопределённая константа PHP «DIRECTORY_SEPARATOR«. Её использование обусловлено тем, что в разных ОС есть разные разделители каталогов. В Windows это «\», а в Linux это «/». PHP это учитывает, потому в переменной «DIRECTORY_SEPARATOR» хранится тот разделитель, который характерен для той или иной операционной системы.
  2. «WP_PUBLIC» — содержит путь к директории «public«
  3. «CORE» — содержит путь к директории «core»
  4. «ENGINE» — содержит путь к директории «engine»
  5. «THEMES» — содержит путь к директории «themes»
  6. «JS» — содержит путь к директории «js»
  7. «CSS» — содержит путь к директории «css»

Также в этот файл перенесены такие именные как:

  • «WP_CONTENT_URL» — url адрес папки «content«
  • «WP_LANG_DIR» — физический адрес папки «languages«
  • «WP_PLUGIN_DIR» — физический адрес папки «plugins»
  • «WP_PLUGIN_URL» — url адрес папки «plugins»
  • «WPMU_PLUGIN_DIR» — физический адрес папки «mu-plugins»
  • «WPMU_PLUGIN_URL» — url адрес папки «mu-plugins»
  • «WP_SITEURL» — содержит url адрес, корневой папки WordPress

Файл Load.php

Теперь добавим в проект файл файл «Load.php». В нём описан класс «Load». В этот класс включены все функции файла «load.php» стандартной редакции WordPress. В них внесены небольшие изменения:

  • Во-первых все глобальные переменные хранятся в классе «GlobalVariables«.
  • Во-вторых убраны те строки кода, где происходит подключение дополнительных файлов. Это сделано потому, что класс «AutoLoader«, как было сказано выше, подключает все необходимые файлы.
  • В-третьих работа с глобальными массивами ($_GET, $_POST, $_ENV и т.д.) теперь осуществляется через одноимённые классы. Файлы с этими классами располагаются в подпапке «globals» директории «core». В дальнейшем эти классы будут наполняться новыми методами.
  • В-четвёртых все статические переменные объявляются и инициализируются при создании экземпляра класса.

Кроме того добавлен файл «LoadFunction.php«. В нём прописаны функции, которые вызывают одноимённые методы класса «Load». зачем это вообще надо? Так как «Wordshift» является модификацией WordPress, то логично что, плагины и шаблоны, написанные для этой CMS должны быть совместимы с данным проектом. А так как WordPress представлен огромным количеством функций, то наличие таких же функций в «Wordshift» поможет в достижении этой цели. Файл с этими функциями также подключается классом «AutoLoader«.

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

Ваш адрес email не будет опубликован.