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

wordpress-core

В прошлой статье мы разобрали файл “.htaccess”. После того как сервер прошёлся по этому файлу и выполнил все инструкции, он передаёт управление файлу “index.php”.

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

Если мы откроем этот файл, то увидим следующее:

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

В этом файле определяется именная константа “WP_USE_THEMES”. Определение происходит с помощью функции “define()”. Эта константа разрешает загрузку темы WordPress. Затем подключается файл “wp-blog-header.php”. Подключение происходит при помощи функции “require()”.

Константа “__FILE__” – возвращает полнвй путь к файлу “index.php”. Этот путь используется функцией “dirname()”. Она возвращает имя родительского каталога, то есть полный путь к папке, в которой находится “index.php”.

Переходим к файлу, который только что подключили.

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

С помощью функции “isset()” определяется существование переменной “wp_did_header”. Если её не существует, значит система ещё не загружалась. Поэтому создаём такую переменную. Далее подключаем файл “wp-load.php”. После подключения этого файла запускается функция wp(). После подключается файл “template-loader.php”. В данный момент нас интересует файл “wp-load.php”.

wp_load_1

Он располагается, как и файл “index.php” в корне сайта. В этом файле, первым делом, определяется наличие константы “ABSPATH”. При необходимости она создается. Эта константа теперь будет определять путь к корню сайта. Далее с помощью функции “error_reporting()” задается список ошибок PHP, которые попадут в отчет. С более подробной информацией об ошибках можно ознакомиться здесь.

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

Теперь необходимо подключить файл конфигураций сайта “wp-config.php”. С помощью функции “file_exists()” проверяем существование этого файла. Если указанный файл существует, то подключаем его. До момента установки WordPress этот файл отсутствует в корне сайта. Вместо него есть “wp-config-sample.php”. В процессе установки создаётся копия этого файла, в которую вносятся необходимые изменения. Затем эта копия сохраняется под именем “wp-config”. Если файл не существует, то запускается выполнение следующего условия цикла “elseif (…){…}”.

Таким образом файл “wp-config.php” является индикатором установки системы WordPress.

Бывают ситуации, когда файлы недоступны из-за ограничений, налагаемых безопасным режимом. В таком случае функция “file_exists()” вернет FALSE . Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir. Именно поэтому перед данной функцией используется оператор управления ошибками “@”. Данный оператор позволяет, в этом случае, проигнорировать значение FALSE, возвращаемое функцией “file_exists()”.

Если файл “wp-config.php” всё ещё можно использовать, а файл “wp-settings.php” отсутствует либо его невозможно подключить, тогда подключаем “wp-config.php”. Если файла “wp-config.php” всё же отсутствует, значит запускается процесс установки WordPress.

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

Процесс установки начинается с определения константы “WPINC”. В ней содержится путь к директории с ядром CMS. Подключается файл “load.php”. Именно в нём прописаны функции:

  • wp_fix_server_vars
  • wp_check_php_mysql_versions
  • wp_load_translations_early

Далее подключается файл “functions.php”. Там прописана функция “wp_guess_url”. В переменной $path прописываем полный путь к файлу “setup-config.php” из папки “wp-admin”. Именной этот файл отвечает за весь процесс установки CMS. Теперь необходимо запустить процесс установки. Для этого из глобального массива $_SERVER получаем фрагмент запроса, введённого в адресную строку.

Например если строка запроса представляет собой адрес “http://www.mysite.ru/test/index.php?id=1&test=wet&id_theme=512”, то $_SERVER[‘REQUEST_URI’] будет содержать фрагмент “/test/index.php?id=1&test=wet&id_theme=512”.

В полученном фрагменте с помощью функции “strpos()” вы ищем строку “setup-config”. Если её нет, тогда с помощью функции “header()” браузеру отправляется HTTP-заголовок “Location”. При этом вместо переменной $path подставляется её значение (путь к файлу “setup-config.php”). Таким образом с помощью данного заголовка происходит перенаправление браузера по новому адресу. Но это станет возможным только тогда, когда прекратиться выполнение текущего скрипта “wp-load.php”. Поэтому используется конструкция “exit”. Она позволяет прекратить дальнейшее выполнение скрипта.

Итак браузер перенаправлен по новому адресу. Процесс установки запущен. На этом пока остановимся. В следующей статье будет рассмотрен процесс запуска ядра системы.

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.