|
|
|
| Недавно у меня состоялся один интересный разговор с одним из возможных работадателей (веб-студия, занимающая разработкой сайтов, судя по портфолио - довольно локальных проектов, с маленькой посещаемостью - сайты-визитки для фирм, с гостевыми книгами). Беседа постепенно кстатилась на тему шаблонизаторов, и в часности Smarty. По поводу последнего этот самый работадатель заметил что мы не работаем с ним, поскольку он очень медленный (Тут надо сделать лирическое отступление, о том что у меня отпыта работы с высокозагруженными приложениями нету, но я двигаюсь примерно в этом направлении, надеюсь с компасом все в порядке) и они не используют шаблоны, а выводят текст посреди php-кода. Насколько я знаю смарти считается "приемлемо быстрым" и меня довольно сильно удивил этот аргумент, учитывая невысокую как фактичиски, так и предпологаемую посещаемость их сайтов, если бы он звучал как "проекты не настолько сложны, что бы отделать код представления от логики преложения" меня бы не смутил этот факт. Внимание, вопрос - а что смарти действительно настолько "медленный", говорю сматри - подразумеваю шаблонизаторы. И еще один вопрос - а чем же собственно отличается шаблонизатор от фреймворка? | |
|
|
|
|
|
|
|
для: Гость
(30.10.2008 в 14:40)
| | Не претендуя на глубокое знание я бы объяснил так:
самые медленные - пассивные шаблоны, так как их невозможно "скомпилировать", поэтому приходится парсить каждый раз (условно)
активные шаблоны, с возможностью компиляции (смарти) много быстрее, так как после компиляции мы получаем столь любимый работодателем php код вперемежку с дизайном. Другой вопрос, что шаблонизатор это сделает не столь компактно и красиво как бы это сделал программист. В итоге код получается чуть медленнее и охоч до памяти.
Писать код вперемежку с дизайном, если планируется поддержка, на мой взгляд - дурдом. На потраченные при его сопровождении человекочасы можно купить не один сервер.
Понятное дело, что при проектировании высоконагруженных приложений имеет смысл кэшировать все, что возможно. Смарти, в этом плане, предоставляет достаточно удобный инструментарий.
Фреймворк лично я понимаю, как некий комплект функций, облегчающих разработку (эти функции совсем необязательно связаны с отображением информации). Мне кажется что многие шаблонизаторы представляют собой фреймворки в той или иной степени. | |
|
|
|
|
|
|
|
для: Гость
(30.10.2008 в 14:40)
| | Зачем Smarty, если всё можно делать средствами РНР
http://php.webconsulting.by/2008/04/23/view-templates-smarty-vs-php/ | |
|
|
|
|
|
|
|
для: sp10
(30.10.2008 в 20:11)
| | Не согласен - как уже было написанно это очень сильно усложняет поддержку кода, чем он больше в обсоенности. Хотел написать развернута, но пока писал получился какой-то холивар, притом что сматри я не пользовался кроме как смотрел и дергал за ниточки. Да и кроме того при разработке проекта в команде мне кажется очень важно что бы пхп код не мешался с дизайном, как для удобства програмиста, так и дизайнера, думаю даже в первую очередь. Если не прав - поправте. | |
|
|
|
|
|
|
|
для: Гость
(30.10.2008 в 20:59)
| | "пхп код не мешался с дизайном"
Вы говорите о принципе MVC, но какое к ней отношение имеет обязательное использование Smarty? Отделение т.н. business logic и presentation logic хорошо, но ведь presentation logic тоже может быть написан на РНР. Неужели дизайнер удивится увидив foreach вместо loop? | |
|
|
|
|
|
|
|
для: sp10
(31.10.2008 в 11:24)
| | Я думаю что удивится:)
Наверное вы обратили внимание на то, что синтаксис смарти нарочито упрощен: хочешь параметры в кавычках передавай, хочешь без кавычек, а хочешь - не передавай вовсе. Так же с массивами и прочим. То есть изначально шаблон ориентирован на верстальщика или дизайнера, который о программировании имеет очень общее представление, а php может не знать вообще. Мне кажется что это правильно. Кроме того, такой шаблон можно открыть в броузере и посмотреть. А если программист делает шаблон сам и для себя - наверное и голый php вполне подойдет... | |
|
|
|
|
|
|
|
для: sp10
(30.10.2008 в 20:11)
| | > Зачем Smarty, если всё можно делать средствами РНР
Smarty и написан на PHP. | |
|
|
|