сверхлегкая система шаблонов в PHP, которая не позволяет использовать PHP-код внутри шаблонов или использовать eval

Я ищу очень простую систему шаблонов PHP. Прямо сейчас я использую:

/**
 * Renders a single line. Looks for {{ var }}
 *
 * @param string $string
 * @param array $parameters
 *
 * @return string
 */
function renderString($string, array $parameters)
{
    $replacer = function ($match) use ($parameters)
    {
        return isset($parameters[$match[1]]) ? $parameters[$match[1]] : $match[0];
    };

    return preg_replace_callback('/{{\s*(.+?)\s*}}/', $replacer, $string);
}

(отсюда: PHP - Чрезвычайно легкая система шаблонов )

, но я могу только назначать и отображать переменные. Мне также нужен способ использования таких условий, как IF и массивы циклов.

Я нашел Rain TPL - http://www.raintpl.com/Quick-Start/#if - что очень близко к что я ищу, но есть несколько вещей, которые мне это не нравятся:

  • он позволяет парню, который пишет шаблон, запускать функции PHP (внутри условия IF).
  • он записывает кеш и файлы php, которые я не хочу

Итак, есть ли что-нибудь похожее на это, но даже более "простое", строгое и более безопасное?

14
задан Community 23 May 2017 в 11:47
поделиться