Я создаю приложение Laravel PHP, где пользователь сможет создавать «макеты» для страниц.
Чтобы сделать макет, пользователь вводит HTML в форму, и при желании он может указать области, в которых при создании страницы, использующей этот макет, редактор WYSIWYG позволит редактору добавлять контент.
Что происходит сейчас, этот HTML-файл сохраняется в /storage/templates/layouts
как .blade.php
файл. Пользователь назначает редактируемые области с помощью директивы @yield
лезвия. Каждая редактируемая область оборачивается директивой @section
и объединяется в один файл .blade.php
, и добавляется директива @extends()
, ссылающаяся на макет. Затем он сохраняется в /storage/templates/pages
. Когда страница запрашивается, она просто возвращает вид как обычный блэйд-вид return view('templates.pages.{page_slug}');
.
С точки зрения производительности, безопасности и удобства обслуживания это хороший подход? Будет ли лучше хранить эти данные в базе данных? Есть предложения по улучшению?