![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
Собственно сабж, хотя "шаблониатор для PHP" и звучит странно
Что именно нужно? Нужна функция типа parseTemplates($template, $vars); Где $template - шаблон, а $vars - массив переменных. Что должен уметь шаблонизатор? 1. Ставить переменные 2. Работать с if-else 3. Работать м циклами типа foreach Есть ли что-нибудь такое простое и легкое? P.S.: Если неясно о чем спрашиваю - напишите, постараюсь написать более внятно. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Не вижу ничего странного. Ну если не хочешь писать свой, то можешь попробовать Смарти, хотя я его не юзал, но принципы работы его знакомы. Все то, что ты перечислил, у него есть, даже гораздо больше. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
-=Ustas=-, монстроподобный Smarty не поджодит по следующим причинам:
1) Слишком большой и навороченный, а мне нужен только вышеперечисленный функционал (80 Кб кода - это перебор) 2) Smarty расчитан на работу шаблонов- файлов, а у меян шаблон - это текстовая переменная. По сути мне нужна всего одна ф-ия, уверен, что её кто-то уже писал. К сожалению, я не настолько хорошо знаком с PHP, чтобы быстро (а это важно) написать качественный шаблонизатор без уязвимостей. |
|||
|
||||
| skalex |
|
|||
|
Хороший человек ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: 8 Всего: 23 |
Я работал со Smarty и не назвал бы его "монстроподобным". Более того, рано или поздно появляется необходимость в каких то нестандартных функциях, чего какой-нибудь собранный на коленке движок может и не дать.
И потом даже исходя из твоих критериев - нужный тебе шаблонизатор представит собой далеко не одну функцию. А почему традиционный HTML+PHP не устраивает? |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
skalex, по порядку.
1) Возможность в расширении функционала относительно вышеперечисленного вряд ли появится 2) Насчет одной ф-ии согласен. Это я образно, но в целом код будет не большой (говорю не с бухты-барахты, у меня есть шаблонизатор, который меняет переменные и работает c if - состоит из 2-х ф-ий, просто и безопасен, но усовершенствовать его я не могу). 3) HTML+PHP не подходят, т.к. отделить бизнес-логику и дизайн таким образом можно, а вот застраховаться от ошибок-ляпов будущего верстальшика не позволит. Он может такого наиспрвлять, что всё ляжет, хотелось бы это предусмотреть. Добавлено @ 17:10 Чтобы не быть голословным приведу код упомянутого мной шаблонизатора:
Возможно кто-то сможет его усовершествовать или поймет в чем мой вопрос. Пример шаблона: $str = "Text #?var# #var# #?# text"; |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
использую в шаблонах просто
$navbar $item[item_id] $item[subject] и никаких preg_replace (зато eval |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
Vaulter, нужен именно шаблонизатор.
Так что, ничего подобного нет? |
|||
|
||||
| Loncaster |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 8.8.2006 Репутация: нет Всего: нет |
PHPLIB , там есть легенькие отличный шаблонизатор.
--------------------
Ще не вмерла Україна... |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Burrr, зря отказываешься от Смарти. Смущает количество кода? - пройдись обфускатором. Там пару файлов значущих. Остальной функционал просто для удобства по плагинам распихан.
Если все же тянет свое написать - пользуй лучше XML+XSLT. Там тебе и циклы и условия уже реализованы. Так что все гораздо проще. |
|||
|
||||
| Eugene_Bond |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 3.9.2006 Репутация: 1 Всего: 4 |
Если логику переносить в шаблоны (условия и циклы например) -- шаблонизатор изначально не будет легким. Если логика в шаблонах нужна, то я полностью поддерживаю smartov-а: или Смарти или XML+XSLT Если логику можно оставить коду, то порекомендую старенький, но весьма шустренький XTemplate. Как раз то, что надо: прост и легок. |
|||
|
||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
Всем спасибо за советы! Посмотрел PHPLIB и XTemplate. В итоге решил воспользоваться советом smartovа и заюзать Smarty
Это сообщение отредактировал(а) Burrr - 7.11.2006, 15:10 |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
Burrr, Не надо "заюзать Smarty smile вырезав все лишнее."
Есть ведь Flexy (Это как раз "облегчённый" и усовершенствованный Смарти). ИМХО самый простой и лучший шаблонизатор. Код ПХП:
Шаблон: index.html
|
||||
|
|||||
| Burrr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 4.9.2005 Репутация: 1 Всего: 20 |
sergejzr, ссылку бы на Flexy?
Добавлено @ 17:31 Уже не надо, нагуглил Спасибо, посмотрю что за зверь! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |