Файл запуска в SiteForeverCMS

Запуск системы стартует при обращении к скрипту index.php.

По умолчанию скрипт работает с маршрутом index, который указывает на страницу по-умолчанию.

Для того, чтобы послать запрос на работу с другим маршрутом, нужно необходимый маршрут после index.php. Т.е., чтобы обратиться к странице about, нужно выполнить запрос index.php/about. Для страницы about/contacts необходимо выполнить запрос index.php/about/contacts. Чтобы сделать запросы более понятными человеку, можно воспользоваться настройками mod_rewrite, входящего в состав сервера apache, либо другим механизмом, выполняющим аналогичные действия у других веб-серверов.

Что же происходит при запуске системы?

<?php
//Файл index.php

//корень сайта
define('ROOT', __DIR__);

// автозагрузка классов через Composer
require_once 'vendor/autoload.php';

$app = new App('dev', true);
$app->run();

Константа ROOT служит для определения директории, где находится сайт. Это нужно для формирования и подключения статических файлов (js, css, img) из директории сайта. Т.к. директория с сайтом и директория, где находится CMS могут различаться, то определение этой константы является обязательным.

Поскольку для управления зависимостями используется Composer, то будем пользоваться его автозагрузчиком классов vendor/autoload.php. Тем более, что на продакшене мы можем сгенерировать оптимизированную версию автолоадера.

Для настройки кастомных параметров для каждого окружения было принято решение использовать менеджер параметров Incenteev ParameterHandler . Это позволяет использовать композер как настоящий установщик команндой строки, который запрашивает параметры в интерактивном режиме во время установки сайта.

Конструктор приложения принимает 2 параметра:

  1. Псеводним окружения (как правило "dev", "test" или "prod");
  2. Значение debug, определяющее режим отладки приложения (может быть true или false).

После того, как все подключено, и создан экземпляр приложения, выполняем запуск.


Создано:
Автор:
« Назад на главную

comments powered by Disqus
Fork me on GitHub