компеляция в smarty

DIS

Новичок
компеляция в smarty

Здрасти всем.

У меня (и, наверное, не только у меня) такая проблемма:

когда я заливаю SAMRTY-шаблон по FTP он на середине залвки успевает скомпелироваться в PHP.
в итоге я получаю либо ошибку, которая выражается в отсутствии части сайта, либо ещё какую-нибудь не очень приятную ерунду.

это реально напрягает, т.к. на сайте одновременно находиться около 100 человек и мне приходиться либо наудачу несколько раз перезаливать шаблон, пока он удачно не скомпелится, либо удалять скомпелированный кеш (что ещё менее приятно, т.к. там всегда около 1000 шаблонов).

основная проблемма в том, что это всё успевает увидеть добрая сотка посетителей :(

есть какой-нибудь способ борьбы с этим?:)

Спасибо.
 

DIS

Новичок
baev

а чего тут нереального?

файл заливается НЕ мгновенно..

посещаемость высокая, если заливаешь шаблон, который используется на каждой странице, то ЧПОК и усё..
 

Фанат

oncle terrible
Команда форума
ну заливай в другую папку, а потом просто передвигай
 

DIS

Новичок
Автор оригинала: Фанат
ну заливай в другую папку, а потом просто передвигай
не вариант :(

есть ещё и веб-мастера, которые этого делать не будут.

я ищу именно программный вариант решения данного вопроса...

собственно ищу в smarty, где сравнивается время изменения шаблона с временем компиляции.

хочу добавить туда пару секунд :)

но вот то ли глаза уже не те, то ли совсем я тупой, но найти не могу:(

-~{}~ 08.06.07 16:30:

НАШЁЛ :)
 

AmdY

Пью пиво
Команда форума
извращение.
используй метод Фанат, сохраняй с другим именем затем переименовывай, можешь скриптик написать, который это дело автоматизирует.
а поправив код Smarty получишь грабли, которые затем влепят те по лбу.
 

DIS

Новичок
всё равно засада..

если добавть к времени изменения файла 5 сек, то все эти 5 сек оно будет его перекомпелировать при каждом запросе..
за 5 сек файл конечно зальётся... и на сайте всё будет ОК..

он оно всёравно его компелирует и в эти пару сек на сайте появляются недоделанные смарти.. виден кусок переменной в конце.. и закоментированный текст..

придётся выщитывать текущее время и делать паузу в 5 сек..

-~{}~ 08.06.07 17:10:

AmdY

этот вариант не катит, т.к. над сайтом работают несколько не совсем аккуратных людей.. файлы перезаливать/править приходится часто и т.п.
 

AmdY

Пью пиво
Команда форума
1. напиши скриптик заливки: залил, а затем заменил.
2. и какого хрена всё это делается на действующем сайте по n-раз в день?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
DIS
После отладки, для достижения максимальной производительности, компиляцию как правило выключают. Тем-более, если сервер с высокой посещаемостью. $compile_check ($force_compile)

Возможные варианты

1. Выключить $compile_check ($force_compile) и вручную удалять скомпилированный темплейт.

2. (если Вы проверяете результат после заливки шаблона):
сделать что-то типа такого
if ($_SERVER['REMOTE_ADDR'] == 'Ваш Ай-пи'){
$smarty->force_compile = true;
}
ну или
if ($_GET['recompile']){
$smarty->force_compile = true;
}
 

DIS

Новичок
Автор оригинала: AmdY
1. напиши скриптик заливки: залил, а затем заменил.
2. и какого хрена всё это делается на действующем сайте по n-раз в день?
1. не всем удобно этим пользоваться.. так человек берёт с тестового на действующий сервер заливает и усё.. а писать какую-то файловую админку для этого.. э нее - время деньги :)
2. такого хрена, что в день на сайте происходит n изменений :)

-~{}~ 08.06.07 17:42:

выключать $compile_check не катит.. файлы часто меняют причём люди, которым не обяснишь, что надо удалить какой-то файл средит 1000-1200 скомпелированных шаблонов.

проверять-то проверяем, но не всегда же :)

короче строчка

if (time()-$_params['resource_timestamp']<5) {
return true;
}

в Smarty.class.php всё решает с минимальными трудозатратами и без изменений в работе остальных:)
 

ustas

Элекомист №1
не совсем удобно против ветра стоять, читай что Mr_Max пишет. файловую админку для этого не нужно.
отключил проверку, залил, включил. (самый тупой вариант)
 

DIS

Новичок
хе.. хотя

if ($_SERVER['REMOTE_ADDR'] == 'Ваш Ай-пи'){
$smarty->force_compile = true;
}

это тоже идея :)

-~{}~ 08.06.07 17:52:

Автор оригинала: ustas
отключил проверку, залил, включил. (самый тупой вариант)
да 10 раз уже сказал, что заливают люди, которые не имеют права и не умеют править скрипты.. и не удобно каждый раз это делать..

а вот второй вариант - это да :)
 

Фанат

oncle terrible
Команда форума
блин, в смарти же есть настройка - компилировать на лету или нет.
уж её-то поменять твои вебмастеры в состоянии?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
DIS
Я думаю, что постоянный $compile_check = true это зло.
К сожалению немогу утверждать насколько сильное.
Но не зря ж об этом сказано в мане - "вырубить" нафиг после отладки.
Тем-более, как Вы сказали, сотка посетителей за 5 сек.
 

DIS

Новичок
Mr_Max

Спасибо.

-~{}~ 08.06.07 18:29:

Автор оригинала: Фанат
блин, в смарти же есть настройка - компилировать на лету или нет.
уж её-то поменять твои вебмастеры в состоянии?
в том-то всё и дело, что нет :)

всегда годна кто-нить поменяет какой-нибудь частоиспользуемый шаблон, со всех сторон начинается крик..
ааа.. ПАМАГИТЕ.. ПРОГРАММИСТ ТЫ ГДЕ? ЧТО С САЙТОМ? Я ЗАМЕНЯЮ-ЗАМЕНЯЮ, А ОНО ВСЁРАВНО ОТВАЛИЛОСЬ:)
 

MadGreen

meninweb
а почему, как вариант, не включить кэширование и перезаливать все что угодно?
 

DIS

Новичок
MadGreen

всмысле? выключить компиляцию? нее.. не катит... на восмипроцовую тумбочку мы ещё не готовы разориться..

включить кеширование? так оно включено местами..
но не там где есть баннеры в ротации (подчти везде) и не там где много параметров передаётся.. замонаешься условия для кеширования прописывать..
 

Активист

Активист
Команда форума
Поменять папку template_c и засунуть его в корень, и не заливать =)
 

AmdY

Пью пиво
Команда форума
нет, здесь проблема не в смарти, а в организации труда. я представляю реакцию посетителя, который сёрфит сайт и после обновления страницы видит уже другой шаблон. :(
 
Сверху