Как работает и что быстрее?
Macik |
|
---|---|
У меня вопрос возник - какой вариант лучше использовать с точки зрения кеширования (скорости работы):
Я так понимаю: первый вариант наиболее предпочтительный, т.к. вешается на хук и вызывается только на соотв. странице, плюс хорошо кешируется. второй вариант генерится заранее без привязки к конкретному вызову (тоже можно повесить на хук и вызывать только на целевой странице), как здесь с кешированием? третий вариант генерируется только когда вызван, вопрос, опять же с кешированием.
Т.к. внутренние механизмы кеширования coTemplate (и Котонти в целом) мне малопонятны - хочется услышать комменнтарии от спецов на счет что лучше, что быстрее, что целесообразнее...
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Eugene |
|
---|---|
полезный вопрос! присоединяюсь к слушающим ответ. )) |
Trustmaster |
|
---|---|
Я, кажется, где-то уже отвечал, как работает кеширование CoTemplate. Повторю главное: CoTemplate кеширует структуру самого шаблона, а не отображаемые данные. О кешировании данных или же страниц целиком должен позаботиться контроллер. Соответственно, ни один из перечисленных вариантов непосредственно на кеширование не влияет. Но различия в скорости работы и условиях применения есть. {MY_TAG} Назначается контроллером для данного шаблона, шаблонизатором обрабатывается быстрее всего и из-за простоты конструкции, и из-за того, что поиск происходит по небольшому локальному массиву тегов. Плюсы:
Минусы:
{PHP.my_tag} Это глобальная переменная PHP. Работает медленнее, чем локальный тег, потому что поиск переменной происходит в (огромном) массиве $GLOBALS. Больше отличий по скорости нет. Плюсы:
Минусы:
{PHP|my_tag()} Это вызов функции со всеми вытекающими последствиями. Точнее, сначала соствление списка аргументов, а уж потом вызов функции. Так что работает такая конструкция медленнее обоих вышеперечисленных вариантов, но не слишком ощутимо. Плюсы:
Минусы:
Краткое резюме:
May the Source be with you!
|
Macik |
|
---|---|
Очень доходчего. Спасибо. p.s. Полез смотреть куда можно разместить в документации этот кусок. Оказалось, что почти все уже расписано здесь: http://www.cotonti.com/docs/ext/themes/cotemplate_statements Но все равно, по-русски намного понятнее. И прояснило вопрос кеширования. :)
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Eugene |
|
---|---|
отлично! |