Мой сайт

Сайт обо всем по порядку

WpFatFree. Config.


В описании к проекту написано, как развернуть все это хозяйство у себя на компьютере или на хостинге.
Первым делом уделяем внимание папке config(tuning). Эта папка изменила название на tuning. Я уже не помню, что у меня там не получалось, но в качестве последней меры, решено было переименовать папку. Помню лишь, что, как обычно, дело было не "бабине". А название так и осталось.

 Основные настройки сосредоточены в файле config.ini. Константы для подключения к базе данных, отладка, пути к файлам и папкам, автозагрузка – все сосредоточено там.

Следующий файл это conf_blog.ini. Это настройкисамого блога. Эти настройки полностью настраиваются в админке сайта и о них позже.

И, наконец, роуты. Самая важная, но в тоже время понятная и просто реализуемая часть сайта.

   

  1.  Аллиас – для краткой записи обращения к маршруту в ссылках, рероутах и т.д.
  2.  Тип запроса – GET, POST, AJAX.
  3.  Ссылка – тут все понятно, это часть искомого адреса.
  4.  Папка – папка расположения контроллера.
  5.  Контроллер – он сам и есть.
  6.  Функция – функция, где и происходит обработка маршрута.

Про файл Index.php

Это точка входа. Все запросы идут на него и либо выполняются, которые прописаны в маршрутах, либо на страницу 404. Это условие задано в файле конфигурации сервера .htaccess. А также открытие файлов по прямым ссылкам, в случае их физического нахождения на диске. Это необходимо для, допустим, вэбмастера яндекса, карты сайта.

Далее подключаем автозагрузку composer. 

require_once("../vendor/autoload.php");

Сообщаем фреймворку о маршрутах и настройках.

$f3->config('../config/config.php');
$f3->config('../config/conf_blog.php');
// Set up the routes
$f3->config('../config/routes.ini');

Подключение к базе данных.

$database = new DB\SQL(
    $f3->get('DB'),
    $f3->get('DBUSER'),
    $f3->get('DBPASSWORD'),
    array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION)
);

Маршрут обработки ошибок.

$f3->set('ONERROR',
    function($f3) {
        $template = new Template();
        echo $template->render('theme/error.htm');
    }
);


Так выводятся ошибки в общем случае. Коротко и ясно. Для более приятного визуального восприятия у меня страница ошибки встроена в общий шаблон сайта и все это организовано через контроллер.

$f3->set('ONERROR', 'ErrorController->errorpage');


Формируем токен для защиты от атак CSRF и запускаем сессию.

new Session(NULL,'CSRF');
$f3->copy('CSRF','SESSION.csrf');

С этой защитой тоже были проблемы. Может они и остались, потому как я решил их в силу своих способностей. Проблема в том, что токен CSRF формируется каждый раз при перезагрузке страницы. И при отправке формы как раз это и происходит. В результате, CSRF, который заполняется в поле формы становится уже «старым». И проверка не проходит.

Так что я запоминаю его в сессию и для проверки использую его. Короче говоря, он запаздывает у меня на один цикл. Но меняется ведь и вроде как правила защиты соблюдены. Я надеюсь, что мои размышления верны.

Ну и собственно запуск.

$f3->run();