Перейти к содержанию

Компоненты

Для более удобной работы и минимизирования дублированного кода, используются компоненты.

Чтобы создать свой компонент, следует:

  1. Создать файлы Layout.php, layout.tpl (обязательно) и style.css / style.scss, script.js (по желанию) в директории Layout/Path/To/Component (где Path/To/Component - путь к файлу компонента)
  2. Заполнить файл по следующему примеру:
<?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 компонента.