Компоненты
Для более удобной работы и минимизирования дублированного кода, используются компоненты.
Чтобы создать свой компонент, следует:
- Создать файлы
Layout.php,layout.tpl(обязательно) иstyle.css/style.scss,script.js(по желанию) в директорииLayout/Path/To/Component(гдеPath/To/Component- путь к файлу компонента) - Заполнить файл по следующему примеру:
<?php
namespace App\Layout\Path\To\Component;
use App\Layout\LayoutBase;
class Layout extends LayoutBase
{
public static $extraAssets = [];
}
Важно
Путь к файлу компонента и namespace должны совпадать! В противном случае сайт работать не будет
После того, как все нужные файлы были созданы, можно добавить свою верстку в файл layout.tpl. Для вывода данных используется глобальная переменная $data (аналогично $content в шаблонах).
В файлы style.css / style.scss заполняются стили, а в script.js заполняется JavaScript код. Эти файлы будут автоматически подключены к странице при выводе компонента.
Заметка
Simflex умеет автоматически компилировать SCSS файлы в обычные CSS файлы. После компиляции, данные будут закешированы для быстрой работы.
Использование компонентов
Компоненты используются в шаблонах следующим образом:
<?php App\Layout\Path\To\Component\Layout::draw([
'field_1' => 'Hello World!',
'field_2' => 123
]); ?>
Вместо field_1, field_2 передаются необходимые компоненту элементы, которые будут доступны в переменной $data.
Аналогично, компоненты могут использовать другие компоненты в файлах layout.tpl.
Внимание
Переменные $content и $children, доступные в шаблонах НЕ будут доступны в файле layout.tpl компонента.