В настоящее время я занимаюсь модернизацией простой системы шаблонов для пользователей, которые создают свои собственные страницы, и хотел бы, чтобы они могли вставлять свои собственные наборы. заранее установленное «переменные».
Вот рабочий процесс:
Client textarea --> saved to database --> pulled from database --> page generated
Теперь вот пример того, что их textarea
может выглядеть так:
Hello my name is {{firstname}} {{lastname}}. My phone number is {{phone}}.
Где, конечно, значения firstname
lastname
а также phone
все в настоящее время сидят в переменной сеанса. И либо когда страница сохраняется в базе данных или же страница сгенерирована нам нужно заменить {{firstname}}
{{lastname}}
а также {{phone}}
с элементами, хранящимися в сеансе.
Что делается сейчас:
$pat = "/\{\{$match\}\}/"; //where $match is a preg_match for the rendered html to see if there's a "token"
if ($match === 'FirstName') {
if (empty($firstname)) { $err[] = '{FirstName}'; } $str = preg_replace($pat, $firstname, $str);
}
if ($match === 'LastName') {
if (empty($lastname)) { $err[] = '{LastName}'; } $str = preg_replace($pat, $lastname, $str);
}
То, как это делается в данный момент, представляет собой сложную кучу кода, включая preg_match
а также preg_replace
— я знаю, что это не «правильный» или самый эффективный способ сделать это. Есть ли в PHP предустановленная функция для установки собственных шаблонов токенов и наблюдения за ними? Или, может быть, модуль, который может быть установлен? Класс или наблюдатель?
Я хочу повторить, что я не ищу чисто программное решение — поскольку это уже было сделано. Мне интересно, есть ли встроенное решение PHP, которое решает эту конкретную проблему? Или мне лучше создать свой собственный класс и собрать этот токен-аппарат с нуля?
я нашел эта страница, но это относится только к Drupal, и я не использую никаких готовых CMS в этом конкретном случае.
Задача ещё не решена.
Других решений пока нет …