В принципе есть примеры размещения шаблонов Blade в базе. Меня заботит применимость в CMS, когда орпеделённый круг лиц может править шаблон. В отличие от Twig, например, шаблоны Blade скорее являются исходниками на php + сахарок. То есть если я разрешу редактирование, слишком умный пользователь сможет вставить туда произвольный код. Елинственное что я придумал, это пропускать текст шаблона через token_get_all() чтобы вычленить <?php ?>, сигналить тревогу и не давать сохранить. От просто сломанного шаблона это не спасёт, но хотябы не будет такой дырищи. Буду благодарен за любые мысли по поводу. Наверняка кто-то уже решал такую проблему.
Но ведь это может быть совершенно безопасная строковая константа.. А вообще, о каком юзере-редакторе речь идет? Думаю, это вопрос доверия "определенному кругу лиц" в первую очередь.
@Fell-x27 @romach Назовём этого пользователя "редактор". Я уполномачиваю его править странички. Я не хочу, чтобы однажды он попробовал себя в роли программиста. Twig я рассматриваю как запасной вариант, но я использую Blade и хотел бы остаться с одним шаблонизатором на данном сайте. Менять язык на Python или Javascript я тоже не хочу, хотя они заслуживают внимания Вы прочитали вводные данные? В рамках этой темы они не поменяются.
Пожалуй я откажусь от идеи фильтровать <?php и @php Этого не достаточно, т.к. внутри тех же {{ }} можно написать выражение с любыми функциями. Надо либо безопасный шаблонизатор использовать, либо права раздавать осторожно. Всем спасибо.
@artoodetoo других вариантов нет. Blade - изначально сделан как сахар, он не запрещает php-код, потому только Twig, при чем скорее всего как отдельный компонент, что бы можно было написать сервис дающий ему необходимое окружение и полностью отвязать от стандартного функционала Laravel.