Плагины
Система никак не ограничивает возможности языка. Чтобы это показать, давайте реализуем возможности блога с единственным автором на базе синтаксиса Markdown. В первую очередь подключим механизм рендеринга этого языка. Я рекомендую для загрузки внешних зависимостей использовать Composer. Создайте файл
composer.json в корне проекта:
{
"name": "MyProject",
"type": "project",
"require": {
"michelf/php-markdown": "*"
}
}
Выполните команду в консоли (если у вас установлен composer):
composer install
После создайте ваш плагин
_plugins/mk.php:
<?php
function markdown($content){
return Michelf\Markdown::defaultTransform($content);
}
Структура проекта
/
_layout/
default.html
_plugins/
mk.php
vendor/
css/
style.css
about/
index.php
sp.php
config.php
index.php
Теперь необходимо подключить плагин к проекту. Для этого измените
config.php:
<?php
return [
'plugins' => [
'vendor/autoload.php', // Для загрузки зависимостей
'_plugins/mk.php', // Для загрузки плагина
],
'layout' => '_layout/default.html',
'title' => 'Мой сайт',
];
Плагин подключен, теперь можно использовать его на всех страницах проекта, но мы изменим с его помощью только страницу "О проекте", для этого отредактируем
about/index.php:
<?php
$sp = ['render' => 'markdown', 'title' => 'О проекте'];
include('../sp.php');
?>
# О проекте
Мой очень хороший проект
Добавлено через 02:26 сек.
Под лендинги и сайты, думаю, подойдет просто идеально, если нужно что то посложнее, можно использовать такую схему:
<?php
include('sp.php');
// Контроллер страницы
$db = $sp['database'];
$rows = $db->query(...);
?>
<!-- Шаблон -->
<ul>
<?php foreach($rows as $row); ?>
<li><?= $row['val'] ?></li>
<?php endforeach; ?>
</ul>
Страницы получаются более структурированны (вверху контроллер, внизу шаблон) и крайне гибкими (можно сделать все, что позволяет PHP).
Добавлено через 00:51 сек.
Все описанное в данной теме прикрепляю в виде архива.
Может кому пригодиться ) Лицензировать не буду, делайте с кодом что хотите, считайте учебным проектом.