Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
Опции темы | Опции просмотра |
16.06.2012, 20:32 | #1 |
Guest
Сообщений: n/a
|
Кэширование расширения (4 варианта: кэшировать, не кэшировать, управлять, по времени.
Добрый день.
Есть заготовка стандартного расширения создаваемая через kickstarter: которая подключается в ext_localconf.php через t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_test.php', '_pi1', 'list_type', 0); где как понимаю значение 0 - не кэшировать, а 1 - это-кэшировать -------- PHP код:
1. Как правильно включить кэширование данного расширения. Случайное значение rand (1, 100) должно вывестись только один раз и все 2. Как правильно отключить кэширование данного расширения. Случайное значение rand (1, 100) должно постоянно генерироваться по новому 3. Возможно ли кэшировать на определенный период времени, либо до определенного периода времени? и 4. Возможно ли по ходу расширения указывать где кэшировать, а что не кэшировать (т.е. управлять кэшированием)... Т.е. так //Включил кэш $content=' Hellow Word - Случайное значение = ' . rand (1, 100); //Выключил кэш $content=' Hellow Word - Случайное значение = ' . rand (1, 100); //Включил кэш $content=' Hellow Word - Случайное значение = ' . rand (1, 100); //Выключил кэш $content=' Hellow Word - Случайное значение = ' . rand (1, 100) ; Спасибо. |
18.06.2012, 17:52 | #2 |
Senior Member
|
1. В TS шаблоне расширение должно быть объявлено как = USER
2. Тоже, но как = USER_INT 3. В TYPO3 версии 4.6 и выше появилось свойство кэширование с указанием времени в stdWrap. Еще есть старый экст coago. Есть более новый enetcache. 4. Своей программной логикой на PHP, можно используя "caching framework" ядра начиная с версии 4.3. А можно что хотите. |
18.06.2012, 20:04 | #3 | |
Guest
Сообщений: n/a
|
Цитата:
|
|
18.06.2012, 20:07 | #4 |
Senior Member
|
Варианты 1-2 существуют в TYPO3 ну очень давно, еще до появления caching framework.
В варианте 4 все на ваше усмотрение. Можете использовать caching framework, а мы чаще используем memcached напрямую. |
18.06.2012, 20:22 | #5 |
Guest
Сообщений: n/a
|
Правильно понимаю, что это из этой серии и для этого нужен EXTBASE?
http://www.tomaj.sk/2011/03/22/typo3-caching-framework/ http://daniel.lienert.cc/blog/blog-p...ion-verwenden/ |
19.06.2012, 12:07 | #6 |
Senior Member
|
Нет, никакой extbase не нужен. Вторая ссылка в вашем примере это как раз оно (обычные настроки и использование классов ядра). Только как кэшь используется БД. Если у вас полноценный выделенный сервер и достаточно ОЗУ, то лучше использовать что-то вроде memcached. На БД в TYPO3 и так нагрузки хватает.
|
23.06.2012, 10:42 | #7 | |
Guest
Сообщений: n/a
|
Цитата:
Хорошо - попробую и то и то... |
|
25.06.2012, 23:53 | #8 |
Guest
Сообщений: n/a
|
В общем с выше описанным ничего не выходит...
Нашел еще ссылку: что это за способ кэширования? http://buzz.typo3.org/people/steffen...in-extensions/ http://wiki.typo3.org/Functions_for_t3lib_cache |
26.06.2012, 11:04 | #9 | |
Senior Member
|
Цитата:
На вскидку: 1. Если у вас плагин типа USER, то содержимое закэшируется при первом обращении к нему и внутренняя логика уже не будет использоваться. В случае любой динамики обязательно должен быть USER_INT. 2. Может у вас отключено использование caching framework в настройках TYPO3. На сколько я помню по умолчанию он выключен. По новым ссылкам. cache_hash - таблица которая используется для внутреннего кэширования. Она и функции работы с ней существуют в ядре очень давно. Ее тоже можно использовать (пример в первой ссылке), но как по мне это не очень эффективно. |
|
02.07.2012, 00:26 | #10 |
Guest
Сообщений: n/a
|
Вот допусти стандартный класс, созданный через kickstarter:
PHP код:
|