Весь сайт должен быть разработан с использованием компонентов. Компоненты могут быть сложными, а могут быть и очень простыми.
Для того, чтоб отобразить компонент на сайте — в любом php файле при разработке напишите следующее:
Разберем подробнее.
Component::create("test-counter") — компонент с названием test-counter. Название компонента определяет откуда он берет данные. В случае с test-counter это два варианта:
Рассмотрим сложный вариант. Создайте файл /eva2/components/render/Test/Counter/index.php. Пустой файл компонента должен выглядеть следующим образом:
id="<?=$this->getId()?>" — важная строка. Это является обязательным, если компонент имеет в составе js файл. Но рекомендуется всем компонентам давать id. Компонент не обязательно должен быть div-элементом, но корневой DOM-элемент компонента должен быть один.
В PHP-шаблон компонента, в переменную $props передаются все свойства переданные через setProps. setProps не является обязательным методом при создании компонента. Может быть такое, что ваш компонент не нуждается в свойствах.
Создайте /eva2/components/render/Test/Counter/index.js с содержимым:
Данная конструкция является обязательной.
JS-функция получает 3 параметра:
Создайте файл /eva2/components/render/Test/Counter/index.scss.
Если вашему компоненту нужны стили, то мы рекомендуем давать корневому элементу какой-то класс и строить scss файл используя конструкцию:
Мы создали пустой компонент из 3-х файлов. Имейте в виду, если вашему компоненту не нужен js или scss - данные файлы создавать не нужно. Каждый компонент можно подключать сколько угодно раз. Вполне нормальным будет отобразить несколько одинаковых компонентов рядом: