Всем доброго времени суток. Сегодня мы продвинемся еще ближе к реализации минимального набора для RS-MINI. На данном этапе нам нужно создать файл который подключит автозагрузчик классов и стартанет класс в котором будет происходить магия по определению какие контроллеры нужно подключить при открытие определенной странице сайта. По сути это центр всей CMS (далее по тексту я буду называть этот файл приложением).
Так как большая часть классов еще не написана, то приложение будет выглядеть очень скудно. В нашу на сегодня задачу входит просто вывести из него echo. Вот код данного файла (создан он в папке /rs-mini/core/ и называется application.class.php)
<?php
/*
* @package RS-MINI
* @copyright (c) 2015 Alexey Glumov aka Rio-Shaman (support@rio-shaman.ru)
* @license GNU General Public License version 2; see LICENSE.txt
*
*/
namespace core;
if(!defined('RS-MINI')) die();
/*
* application v 1.0
*
* Класс стартует систему
*
*/
class application
{
/*
* главный метод. запуск системы
*
* @access - public
*
*/
public static function run()
{
echo "Запуск из application";
}
}
Обратите внимание что неймспейсом, у класса приложения, является слово core. Как и в предыдущем посте, имея путь к файлу /rs-mini/core/application.class.php я опустил слово rs-mini (так как оно гвоздями прибито в автозагрузчике) и указал (в неймспейсе) только оставшуюся папку core
Теперь стоит создать промежуточный файл в котором мы подключим автозагрузчик и вызовем приложение. Почему подключать и вызывать будем именно в промежуточном файле? Я просто хочу немного разгрузить код точки входа. Давайте переходим в папку /rs-mini/core/ и создаем в ней файл под названием init.php. Вот код данного файла:
<?php
/*
* @package RS-MINI
* @copyright (c) 2015 Alexey Glumov aka Rio-Shaman (support@rio-shaman.ru)
* @license GNU General Public License version 2; see LICENSE.txt
*
*/
if(!defined('RS-MINI')) die();
require_once(DIR_RSMINI . '/core/loader.class.php'); // подключаем лоадер классов
loader::register(); // регистрируем загрузчик классов
\core\application::run(); // стартуем систему
Думаю вопросов данный код вызвать не должен. Подобное уже делали в предыдущем посте. Хочу только отметить то, что в приложение метод run() является статичным. Статичные методы вызываются без создания объекта класса (я уже говорил об этом). А вызываются они через двойное двоеточие. Надеюсь это немного прояснит синтаксис этого файла
Ну что же, нам осталось только подключить наш промежуточный файл к точки входа. Вот новый код index.php
<?php
/*
* @package RS-MINI
* @copyright (c) 2015 Alexey Glumov aka Rio-Shaman (support@rio-shaman.ru)
* @license GNU General Public License version 2; see LICENSE.txt
*
*/
define('RS-MINI', TRUE); // константа безопасности
ini_set('display_errors', 1); // показывать ли ошибки на экране
error_reporting(E_ALL | E_STRICT); // ур-нь ошибок
mb_internal_encoding("UTF-8"); // кодировка
date_default_timezone_set('Europe/Moscow'); // временая зона
define('SHORT_DIR_RSMINI', '/rs-mini'); // короткий путь к движку (от корня пользовательской папки)
define('SHORT_DIR_PROJECT', '/project'); // короткий путь к проекту (от корня пользовательской папки)
define('DIR_RSMINI', __DIR__ . SHORT_DIR_RSMINI); // каталог где лежит система (полный путь)
define('DIR_PROJECT', __DIR__ . SHORT_DIR_PROJECT); // каталог где лежит проект (полный путь)
require_once(DIR_RSMINI . '/core/init.php'); // старт системы
Теперь если мы перейдем на главную страницу нашего сайта, то увидим вот такое сообщение
Проделанную работу Вы можете скачать в самом низу статьи
Всего Вам наилучшего, на сегодня все!