Создать новый фильтр веток - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь создать новый фильтр веток.Я запутался в этом уроке: https://twig.symfony.com/doc/2.x/advanced.html#filters

Я не знаю, куда мне поместить код (какой файл, какой путь) ...

Я создал файл с именем SnipText.php

<?     
$filter = new Twig_Filter('snip', function ($context, $texto) {
    $textoArr = explode(" ", preg_replace('/<[^>]*>/', '', $texto));
    $qtdWords = count($textoArr);
    $texto = '';
    for($i=0;$i<40;$i++){
        if($qtdWords > $i)
            $texto .= $textoArr[$i] . ' ';
        }
    $texto .= '...';
    return $texto;
}, array('needs_context' => true));

$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
?>

А потом я положил его в папку src.Веточка в моей папке продавца.Я получаю сообщение об ошибке:

Неустранимая ошибка: Uncaught Twig_Error_Syntax: Неизвестный фильтр "snip".

Может кто-нибудь показать мне шаг за шагом, как создать фильтр для twig * * 1016

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Комментарий @Cerad мне очень помог!Спасибо

Хорошо.Вам нужно выяснить, где вызывается новый Twig_Enviroment ().Должен быть какой-то загрузочный файл или что-то в этом роде.А затем добавьте свой фильтр.Я ожидаю, что вы, вероятно, найдете другие определяемые фильтры, поэтому будет достаточно легко выяснить, куда идет код.Если в проекте, который вы унаследовали, не использовалась ветка, вам нужно отступить назад и начать работу с документацией по началу работы.И убедитесь, что вы используете правильную версию документа.Если проекту более двух лет, возможно, он использует Twig 1 против Twig 2. Большая разница.- Серад

0 голосов
/ 11 декабря 2018

Когда вы работаете с Symfony, вы должны взглянуть на документацию Symfony, как определить фильтр / расширение ветки.

https://symfony.com/doc/current/templating/twig_extension.html

Сначала вы должны поместить новый класс в новое пространство имен (приложение / Twig в учебнике), зарегистрировать свой класс как службу и пометить его тегом twig.runtime,Затем он загружается автоматически, и вы можете использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...