Компоненты
Для более удобной работы и минимизирования дублированного кода, используются компоненты.
Чтобы создать свой компонент, следует:
- Создать файлы
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
компонента.