Шаблонизатор Smarty - вопрос про производительность и нагрузки.

PHProgress

Новичок
Добрый день.

Сделал первый проект с использованием шаблонизатора Smarty 2.0 - я просто в ВОСТОРГЕ...
Сайт состоит из ~50 страниц. На нем идет полная сборка страниц (Шаблон страницы > Шаблон контента). Работают формы, а также их валидация. А главное я HTML-код верстки сохраняю как оригинал - применяя лишь небольшую логику вывода (IF-в основом).

В итоге имею кучу кэшей - на одну страницу 3-7 кэшей файлов.
Итого кэшированных файлов ~250 штук - когда пройтись по всем страничкам.
Но, что удивительно станица грузится просто влет...

Теперь присматриваюсь к тому, что бы данный шаблонизатор использовать на более крупных "мероприятиях" - и сделать его своим основным средством разработки. По этой причине интересует Ваш опыт работы с данным шаблонизатором на больших проектах (от 2 500 чистых страниц, и всевозможных страниц, где передается паремтры _GET).

Как он себя ведет:

- при довольно больших нагрузках (2 500 страниц и более)?
- при больших посещяемостях (50-300 человек в час)?
- а также как это все дело будет сказываться на общей скорости загрузки страничек сайта?

Варианты которые хотелось бы тестировать - это без VPS, а также c VPS.

--
Просто имел опыт работы с одним шаблонизатором и кэшинг-фреймворком - так они у меня грузили сайт настолько что руки опускались - а кэширование вообще было ужастным - в общем долго грузилось, долго работал (и честно говоря больше плювался - чем работал) - а тут со Smarty - все летает...Или мои опасения напрасны и можно продолжать пробовать нечто большее с данным шаблонизатором - ведь это же PHP-чистой воды разбитый по функциям?

--
Он мне очень понравился. Особенно то, что кэшируется на файлах (по умолчанию) - т.к. это не грузит БД...

Про 3 версию читал - но он мне не понравился, в т.ч. что они перешли на классы и появились какие-то не понятные файлы/куски кода в исходниках....


--
Спасибо.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Smarty обычный компилирующий шаблонизатор со всеми вытекающими. Хайлоад ты не строишь, так что если удобно - используй на здоровье ;)
 

fixxxer

К.О.
Партнер клуба
в smarty 3 есть очень важная вещь, отсутствующая во втором - автоэксейпинг.
 

PHProgress

Новичок
Smarty обычный компилирующий шаблонизатор со всеми вытекающими. Хайлоад ты не строишь, так что если удобно - используй на здоровье ;)
Т.е. я так понимаю что форум (простой, где активным пользователей в день 10-50 человек) к примеру на нем можно сделать - и это будет даже быстро работать...
 

PHProgress

Новичок
Честно - я так и не понял в чем назначение данной функции, а также в чем ее прикол...
Возможно это как-то связано с регистрацией переменных и их верчением в шаблонизаторе - так что уходит меньше ресурсов сервера...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну да, как-то я упустил, третья ветка сейчас является основной и использовать надо бы ее, а не вторую
 

hell0w0rd

Продвинутый новичок
Честно - я так и не понял в чем назначение данной функции, а также в чем ее прикол...
Возможно это как-то связано с регистрацией переменных и их верчением в шаблонизаторе - так что уходит меньше ресурсов сервера...
Пользователь посылает данные на сервер, сервер должен хранить их в сыром виде. Но нельзя сказать что там будет, поэтому существует эскейпинг, по хорошему все данные из переменных нужно экспейпить.
И еще посмотрите twig, вдруг больше вам понравится, мне лично его синтаксис нравится больше:)
 

AnrDaemon

Продвинутый новичок
PHProgress, как уже заметили, Smarty лучше использовать 3-ю версию. И чем раньше - тем лучше. В скоро выходящей 3.1 будет ещё дальше убрана поддержка "переходного периода".
По поводу нагрузки - от количества СТРАНИЦ ничего не зависит - зависит от количества шаблонов и выбранной стратегии кеширования.
Например, один из моих сайтов использует шесть скомпилированных шаблонов (три шаблона, по две версии компиляции на каждый) и вообще ничего не кеширует. Мне даже не пришлось ничего в игнорлист АВгварда заносить - скомпилированные файлы шаблонов меняются только вместе с самими шаблонами, в остальное время это такие же статичные куски кода, как и весь остальной проект.
На другом сайте шаблон используется всего один, но на его основе строится около трёх тысяч разных кешей (сложная структура древовидного меню).
В обоих случаях далеко не шаблонизатор является определяющим фактором в производительности сайта.
 

PHProgress

Новичок
PHProgress, как уже заметили, Smarty лучше использовать 3-ю версию.
Думаю что пока 2-версией обойдусь выше крыши...
Единственное что у меня не получилось со Smarty

- это работать с UTF-8 строками (обрезка, вычисление длинны строк) - ну это уэе наверное больше PHP
- а также не получается задвать время кэширования не в секундах а до истечения определенного времени периода...
С первым пока терпимо - а вот второе очень актуально.
Даже тему созавал соответствующую...
http://phpclub.ru/talk/threads/Преобразование-даты-в-time.75564/#post-678110
 

AnrDaemon

Продвинутый новичок
Ещё раз - это не "обойдусь" или "не обойдусь", это "смогу работать" или "не смогу работать". Если ты сейчас начнёшь завязываться на второй, ты будешь сидеть в позапрошлом году, когда все будут в сегодняшнем, который когда-нибудь тоже станет вчерашним, и ты окажешься в ещё более глубокой заднице, чем сейчас.
Третий, кстати, с уникодом работает лучше. Если верить ченчлогу.
И кеширование в третьем тоже переработано. В том числе можно убивать кеш конкретных запросов при необходимости.
 

PHProgress

Новичок
Ещё раз - это не "обойдусь" или "не обойдусь", это "смогу работать" или "не смогу работать". Если ты сейчас начнёшь завязываться на второй, ты будешь сидеть в позапрошлом году, когда все будут в сегодняшнем, который когда-нибудь тоже станет вчерашним, и ты окажешься в ещё более глубокой заднице, чем сейчас.
Третий, кстати, с уникодом работает лучше. Если верить ченчлогу.
И кеширование в третьем тоже переработано. В том числе можно убивать кеш конкретных запросов при необходимости.
Пока завишу от CMS.
Там для 3-версии придется много переделывать...
 

AnrDaemon

Продвинутый новичок
Это вы так думаете, или вы реально попробовали заменить 2 на 3 и "не взлетело"?
Какая именно CMS?
Я когда заменил библиотеку, был приятно удивлён прозрачной и незамутнённой работой сайта. Словно ничего не случилось.
 
  • Like
Реакции: AmdY

PHProgress

Новичок
В общем думаю, что в перспективе перейду на 3.
Хотя по соображениям - это будет для меня подобно переходу с php5 на php6...
 
Сверху