Для группового проекта я пытаюсь создать механизм шаблонов для PHP для людей с меньшим опытом работы с языком, который может использовать теги, такие как {name} в своем HTML, и PHP заменит этот тег на предопределенную переменную из массива. А также поддерживающие петли.
Это намного превосходит ожидания проекта, но, поскольку у меня есть опыт работы с PHP, я думал, что это будет хороший вызов, чтобы держать меня занятым.
Мои главные вопросы: как мне сделать часть цикла анализатора, и это лучший способ реализовать такую систему. Прежде чем просто рекомендовать существующую систему шаблонов, я бы предпочел создать ее самостоятельно для получения опыта и потому, что все в нашем проекте должно быть нашим.
В настоящий момент основной синтаксический анализ выполняется с помощью регулярных выражений и preg_replace_callback, он проверяет, существует ли $data [name] и если он его заменяет.
Я попытался сделать цикл различными способами, но не уверен, что я нахожусь на правильном пути!
Пример, если данные, которые был предоставлен механизмом анализа, были следующими:
Array
(
[title] => The Title
[subtitle] => Subtitle
[footer] => Foot
[people] => Array
(
[0] => Array
(
[name] => Steve
[surname] => Johnson
)
[1] => Array
(
[name] => James
[surname] => Johnson
)
[2] => Array
(
[name] => josh
[surname] => Smith
)
)
[page] => Home
)
И страница, на которой он разбирался, была чем-то вроде:
<html>
<title>{title}</title>
<body>
<h1>{subtitle}</h1>
{LOOP:people}
<b>{name}</b> {surname}<br />
{ENDLOOP:people}
<br /><br />
<i>{footer}</i>
</body>
</html>
Это создаст нечто похожее на:
<html>
<title>The Title</title>
<body>
<h1>Subtitle</h1>
<b>Steve</b> Johnson<br />
<b>James</b> Johnson<br />
<b>Josh</b> Smith<br />
<br /><br />
<i>Foot</i>
</body>
</html>
Ваше время невероятно ценится с этим!
Большое спасибо,
P.s. Я полностью не согласен с тем, что, поскольку я ищу, чтобы создать нечто похожее на то, что уже существует для опыта, мой хорошо отформатированный и простой для понимания вопрос проголосовал.
P.p.s Похоже, что существует огромное распространение мнений по этой теме, пожалуйста, не голосуйте, потому что у них другое мнение. Каждый человек имеет право на свои права!