Translate

PHP Микрофреймворк HLEB

Скачать Скачать с GitHub
Предназначение Установить Настройка Структура проекта Маршрутизация Типы маршрутов Группы маршрутов Защита маршрутов Конструктор страниц Контроллеры Модели Получение данных Базы данных Регистрация DI Дополнительно

Конструктор страниц

Конструктор страниц - это метод сборки запрошенной страницы из разных файлов в одну, отдаваемую пользователю. Обычно для соединения разных частей страницы используется последовательная вставка её компонентов друг в друга, определенная в этих компонентах. Преимущество конструктора в том, что отдельные файлы, как части страниц, независимы друг от друга, а их сопоставление назначается в маршрутизаторе с заданием именованных наборов, в том числе можно использовать сборку наборов. Конструктор страниц может быть использован опционально. Его особенностью является независимость расположения методов конструктора в маршрутизаторе, они могут находиться в самом конце карты маршрутизатора, но быть использованы ранее.

Чтобы объявить соединение файлов под определенным названием, используется метод маршрутизатора renderMap().

Метод renderMap()

Этот метод имеет два обязательных аргумента, первый принимает название соединения в качестве строкового значения, второй принимает путь к файлу из папки "views" или же нескольким файлам из той же папки, но добавленных в качестве массива их расположений. Например, можно объявить соединение частей страницы под одним названием и в дальнейшем использовать это название для отображения всей страницы в маршрутизаторе. При этом соединяемые файлы должны быть изначально независимы друг от друга и назначаться в той последовательности, в которой будут объединены. Объявляемое название должно быть уникальным, а наборы файлов могут быть произвольными.
Route::renderMap('index page', ['/parts/header', 'index', '/parts/footer']);
Теперь можно указать созданный набор в методе get(), но вместо функции view() используется функция render().

Функция render()

Единственное отличие функции render() от функции view() заключается в первом аргументе - он может принимать как одно объявленное конструктором название, так и массив названий, очередность которых соответствует желаемой последовательности отображения именованных наборов файлов. Второй необязательный аргумент передает массив переменных маршрута со значениями, аналогично реализации в view().

Отображение объявленного названия "index page":
Route::get('/', render('index page'));
При обращении к корневому URL сайта произойдёт сборка файлов из набора "index page" в качестве результирующего контента.
Это будет не прямое соединение файлов, каждый исполняется в изолированной среде, поэтому переменная, заданная в одном файле, не будет видима в следующем. Из-за этого можно менять очередность блоков, не заботясь о предполагаемом конфликте переменных. Изначально здесь подразумевается вывод данных, а не их получение.

Или, при наличии нескольких наборов, можно указать их соединение:
Route::get('/page/', render(['Map1', 'Map2', 'Map3']));
Функция render() доступна и как возвращаемое значение контроллера.
// Файл /app/Controllers/TestController.php namespace App\Controllers; class TestController extends \MainController { function index() { return render('Map', ['x' => 59.9, 'y' => 30.3]); } }
Аналогично view() функция render() может принимать в качестве второго параметра массив передаваемых значений. Переменные по значениям массива будут актуальны в каждом подключаемом файле набора.



Предназначение Установить Настройка Структура проекта Маршрутизация Типы маршрутов Группы маршрутов Защита маршрутов Конструктор страниц Контроллеры Модели Получение данных Базы данных Регистрация DI Дополнительно



Группа поддержки в Телеграм - @phphleb

Этот сайт-инструкция к фреймворку HLEB сделан с использованием фреймворка HLEB.

HLEB - PHP Микрофреймворк Свободная лицензия. Без гарантий. © fomiash 2019-2021