После длительного использования шаблонизатора Quicky пришлось принять решение об уходе с него. На одном проекте проявился старый баг шаблонизатора. Apache error.log Parent: child process exited with status 3221225477. Баг по уверениям разработчика, не шаблонизатора, а PCRE. Но поскольку он проявляется на разных версиях PCRE от этого не легче. Не везде есть возможность поменять версию PCRE по "прихоти" разработчика.
Первой мыслью пришло в голову заменить Quicky на Twig, он мне симпатичен и проект в отличие от Квики активно развивается. Но посмотрев, сколько придется переписывать в шаблонах, ужаснулся. И тут я вспомнил про Smarty. Автор делал Quicky по его подобию. Опять же мне и ранее приходилось использовать Смарти.
Переход произошел в целом безболезненно и быстро, за исключением нескольких подводных камней.
1 2 |
Fatal error: Uncaught exception 'SmartyCompilerException' with message ' Syntax Error in template ".\inc/files\index.tpl" on line 62 "{php} require('actions/edit.php'); {/php}" unknown tag "php" |
Как оказалось Smarty не поддерживает вставку {php} начиная с версии 3.1. Лечится через использование SmartyBC. Мне хватило дефолтного варианта из документации. Хотя по хорошему конечно надо вынести логику из шаблона.
1 2 |
require('/smarty/SmartyBC.class.php'); $Tpl = new SmartyBC(); |
Остался и неприятный осадочек от Smarty. Он был одной из причин перехода на Quicky в свое время. Включив отладчик заметил что шаблоны компилируются медленнее. И резко выросло потребление памяти. Вместо копеечных 0.5-1Mb на сравнительно несложных шаблонах у Quicky, против 1.5-2.7Mb у Smarty . Осталась мысль на будущее сравнить с Twig в плане оптимизации.
Свежие комментарии