Показать сообщение отдельно
Старый 24.10.2012, 12:15   #14
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Еще раз - можете использовать встроенные в ядро функции кэширования.
Подробно и с примерами (в конце) читайте http://wiki.typo3.org/Caching_framework

То что вы сохраняете какой-то готовый контент в файл - это тоже кэширование. Точно также вместо файла можно использовать Memcached, APC и т.п. Может быть fastcache и упростит задачу. Но там и так просто get/set.

Правда нужно понимать, что бы сделать из этого полноценный кэш нужно добавить к этому ряд функций. Например чистку кэша при общей команде "Clear Cache" из BE. Также при усложнении функциональности сайта/экста понадобиться тэггирование записей кэша и чистка по тэгам. сильно улучшает полезность кэша зависимость жизни кэша от изменения и добавления связанных записей. Например, вы отредактировали новость в BE, кэш плагина/страницы новости обновился сразу, а не через 30 минут.

PS: Если вы записываете с именем time(), то как вы потом этот файл находите? Гораздо удобней использовать другие параметры для имени ключа кэша. Например у нас есть метод который реднерит Single View. В нем определяем $cache_key = md5(serialize(array(__CLASS__, __FUNCTION__, $pid, $uid))); Так у нас есть гарантия что ключ кэша (он же имя файла или ключ в memcached) не перепутается с кэшем из другой функции, или из другого класса.
dmartynenko вне форума   Ответить с цитированием