diff --git a/docs/ru/programmers/caching/caching-groups.xml b/docs/ru/programmers/caching/caching-groups.xml index f815acab..21f8b07b 100644 --- a/docs/ru/programmers/caching/caching-groups.xml +++ b/docs/ru/programmers/caching/caching-groups.xml @@ -1,40 +1,44 @@ - + - - Cache Groups + + + Групповое кэширование - You can do more elaborate grouping by setting up cache_id groups. This is - accomplished by separating each sub-group with a vertical bar "|" in the - cache_id value. You can have as many sub-groups as you like. + Вы можете сделать группировку более продуманной, используя групповые значения cache_id. + В таком случае, каждая подгруппа отделяется знаком вертикальной черты "|" в + значении cache_id. Возможно создавать любое количество подгрупп. - cache_id groups - + Группы в cache_id + +caching = true; -// clear all caches with "sports|basketball" as the first two cache_id groups +// Удалить все кэшированные копии подгруппы "sports|basketball" $smarty->clear_cache(null,"sports|basketball"); -// clear all caches with "sports" as the first cache_id group. This would -// include "sports|basketball", or "sports|(anything)|(anything)|(anything)|..." +// Удалить все кэшированные копии группы "sports", +// включая "sports|basketball", или "sports|(anything)|(anything)|(anything)|..." $smarty->clear_cache(null,"sports"); -$smarty->display('index.tpl',"sports|basketball"); - - - Technical Note - - The cache grouping does NOT use the path to the template as any part of the - cache_id. For example, if you have display('themes/blue/index.tpl'), you - cannot clear the cache for everything under the "themes/blue" directory. If - you want to do that, you must group them in the cache_id, such as - display('themes/blue/index.tpl','themes|blue'); Then you can clear the - caches for the blue theme with clear_cache(null,'themes|blue'); - - +$smarty->display('index.tpl',"sports|basketball"); +]]> + + + + Техническое замечание + + При групповом кэшировании, путь к шаблону НЕ используется как часть + cache_id. К примеру, если производится вызов display('themes/blue/index.tpl'), вы + не можете очистить кэш для всех файлов, находящихся в директории "themes/blue". Если + у вас возникла такая необходимость, нужно сгруппировать их в cache_id, например так - + display('themes/blue/index.tpl','themes|blue'); И теперь вы можете очистить кэш + темы blue, используя clear_cache(null,'themes|blue'); + + \ No newline at end of file +--> diff --git a/docs/ru/programmers/caching/caching-multiple-caches.xml b/docs/ru/programmers/caching/caching-multiple-caches.xml index 9535604e..a862b8ed 100644 --- a/docs/ru/programmers/caching/caching-multiple-caches.xml +++ b/docs/ru/programmers/caching/caching-multiple-caches.xml @@ -1,17 +1,19 @@ - + - - Multiple Caches Per Page + + + Множественное кэширование страниц - You can have multiple cache files for a single call to display() or - fetch(). Let's say that a call to display('index.tpl') may have several - different output contents depending on some condition, and you want - separate caches for each one. You can do this by passing a cache_id as the - second parameter to the function call. + Вы можете создавать несколько кэшированных копий для одного вызова функции display() или + fetch(). Предположим, что по вызову display('index.tpl') должны отображаться данные, + содержимое которых зависит от определенных условий, и вы хотите иметь несколько вариантов + соответствующих кэшированных копий. Для этого необходимо передать в функцию идентификатор + кэша (cache_id) в качестве второго параметра. - - passing a cache_id to display() - + + Вызов display() с идентификатором кэша + +caching = true; $my_cache_id = $_GET['article_id']; -$smarty->display('index.tpl',$my_cache_id); - +$smarty->display('index.tpl',$my_cache_id); +]]> + + - Above, we are passing the variable $my_cache_id to display() as the - cache_id. For each unique value of $my_cache_id, a separate cache will be - generated for index.tpl. In this example, "article_id" was passed in the - URL and is used as the cache_id. + В примере мы передали переменную $my_cache_id в функцию display() + в качестве cache_id. Для каждого уникального значения $my_cache_id будет создана + кэшированная копия вывода index.tpl. Здесь, значение "article_id" было передано в скрипт + через URL, присвоено переменной $my_cache_id и использовано как cache_id. - Technical Note - - Be very cautious when passing values from a client (web browser) into - Smarty (or any PHP application.) Although the above example of using the - article_id from the URL looks handy, it could have bad consequences. The - cache_id is used to create a directory on the file system, so if the user - decided to pass an extremely large value for article_id, or write a script - that sends random article_ids at a rapid pace, this could possibly cause - problems at the server level. Be sure to sanitize any data passed in before - using it. In this instance, maybe you know the article_id has a length of - 10 characters and is made up of alpha-numerics only, and must be a valid - article_id in the database. Check for this! - + Техническое замечание + + Будьте очень осторожными при передаче значений от клиента (браузера) + в Smarty (как и в любое PHP-приложение). Хотя приведенный пример + фактического использования article_id прямо из URL выглядит нормально, + он может иметь неприятные последствия. Значение cache_id используется для + создания директории в файловой системе, поэтому, если пользователь решит + передать крайне большое значение article_id или написать скрипт, + который посылает случайные article_id с огромной частотой, это может вызвать + проблемы на уровне сервера. Поэтому вам необходимо в обязательном порядке + проверять данные из форм, перед тем как использовать их. В нашем случае, + мы заранее знаем, что значение article_id имеет длину в 10 символов, состоит + только из букв и цифр, а так же должно являться реальным + идентификатором в базе данных. Все это необходимо проверить! + - Be sure to pass the same cache_id as the - second parameter to is_cached() and - clear_cache(). + Имейте ввиду, что тоже самое значение cache_id необходимо использовать + как второй параметр + в функциях is_cached() и + clear_cache(), если вы хотите применить + их к конкретному кэшу. - passing a cache_id to is_cached() - + Передача cache_id в is_cached() + +caching = true; $my_cache_id = $_GET['article_id']; if(!$smarty->is_cached('index.tpl',$my_cache_id)) { - // No cache available, do variable assignments here. + // Кэша нет, поэтому присваиваем значение переменным. $contents = get_database_contents(); $smarty->assign($contents); } -$smarty->display('index.tpl',$my_cache_id); - +$smarty->display('index.tpl',$my_cache_id); +]]> + + - You can clear all caches for a particular cache_id by passing null as the - first parameter to clear_cache(). + Вы можете удалить все кэшированные копии с конкретным cache_id, передав null в качестве + первого параметра clear_cache(). - clearing all caches for a particular cache_id - + Удаление всех кэшированных копий с конкретным cache_id + +caching = true; -// clear all caches with "sports" as the cache_id +// удаляем все кэшированные копии со значением "sports" в качестве cache_id $smarty->clear_cache(null,"sports"); -$smarty->display('index.tpl',"sports"); - +$smarty->display('index.tpl',"sports"); +]]> + + - In this manner, you can "group" your caches together by giving them the - same cache_id. + Таким образом, вы можете группировать ваши кэшированные копии, назначая им + одинаковые cache_id. \ No newline at end of file +--> diff --git a/docs/ru/programmers/caching/caching-setting-up.xml b/docs/ru/programmers/caching/caching-setting-up.xml index 68516fa6..445ad4f6 100644 --- a/docs/ru/programmers/caching/caching-setting-up.xml +++ b/docs/ru/programmers/caching/caching-setting-up.xml @@ -1,5 +1,6 @@ + Настройка кэширования