Использование модификаторов Fenom в PHP
Заметка коротенькая, но может быть полезной.
Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?
А очень просто:
Таким образом можно получить любой нужный модификатор и использовать один и тот же код и в чанках, и скриптах. Нет дублирования функционала, нет возможных проблем из-за этого.
Надеюсь, кому-нибудь пригодится.
Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?
А очень просто:
$pdoTools = $modx->getService('pdoTools');
$string = 'Some very very long string';
if ($truncate = $pdoTools->getFenom()->getModifier('truncate')) {
$string = $truncate($string, 10);
}
return $string;Здесь мы получаем модификатор truncate и обрезаем строку до 10 символов, если она больше.Таким образом можно получить любой нужный модификатор и использовать один и тот же код и в чанках, и скриптах. Нет дублирования функционала, нет возможных проблем из-за этого.
Надеюсь, кому-нибудь пригодится.
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Более того, Fenom работает быстрее даже учитывая все оптимизации по вызову модификаторов в pdoTools. Для проверки я доработал старый тест:
В чанках вызывается типограф Jevix, по 3 раза * 1000 прогонов чанка.
При обычном вызове, обрабатываемом pdoParser:
Вызов через Fenom:
Один и тот же код, один и тот же модификатор — а разница больше секунды.