Простая и расширяемая система управления контентом, без ограничений на язык.
Решение:
Немного инфы чтоб было понятнее:
В систему изначально включено: layout, обработка ошибок, менеджер плагинов
Система использует возможности веб-сервера для роутинга запросов
Система работает на голом PHP и если немного подправить, то практически любой версии
Система представляет единственный файл следующего содержания:
<?php
// Шаблонизатор
function template($path, array $assign = []){
extract($assign);
ob_start();
include($path);
return ob_get_clean();
}
// Загрузка контейнера
$sp = isset($sp)? $sp : [];
if(is_readable(__DIR__ . '/config.php')){
$sp = array_merge(include(__DIR__ . '/config.php'), $sp);
}
// Загрузка плагинов
if(isset($sp['plugins'])){
foreach($sp['plugins'] as $plugin){
include($plugin);
}
}
ob_start();
register_shutdown_function(function() use($sp){
$content = ob_get_contents();
ob_end_clean();
// Обработка ошибок
$error = error_get_last();
if(is_array($error) && isset($sp['error'])){
return call_user_func($sp['error'], $error, $content, $sp);
}
// Рендеринг страницы
if(isset($sp['render'])){
$content = call_user_func($sp['render'], $content, $sp);
}
// Подключение layout
if(isset($sp['layout'])){
$content = template($sp['layout'], [
'title' => isset($sp['title'])? $sp['title'] : 'SimplePage',
'content' => $content,
]);
}
echo $content;
});Далее я распишу возможности системы и процесс ее установки.