Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблонизаторы или PHP? преимущество шаблонизаторов над php 
:(
    Опции темы
 
Для чего нужен вам шаблонизатор?
Для успокоения души [ 3 ]  [12.00%]
Для того чтобы редакторы могли разобраться [ 7 ]  [28.00%]
Для безопасности (читайте сообщение) [ 3 ]  [12.00%]
Это же круто [ 1 ]  [4.00%]
Я использую PHP как шаблонизатор [ 11 ]  [44.00%]
Всего проголосовавших: 25
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
lukas
  Дата 25.7.2009, 09:22 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



...Да да, избитая тема, религиозные войны и т.п.

Но вчера, я наконец нашел причину использования шаблонизаторов в CMS с гибкой системой прав доступа.

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

Итог: PHP нельзя использовать в качестве шаблонизатора в системах с гибким разделением прав доступа. 


P.S. Думаю это весомая причина отказаться от PHP в качестве главного шаблонизатора.


Приведу также пример. Допустим CMS Bitrix, где не используются шаблонизаторы. В результате чего, если злоумышленник получит доступ к управлению файлами он сможет сделать все что угодно, т.к. он может менять и загружать php файлы. 

Либо другая любая cms, где нельзя заливать php файлы (где вообще такого понятия нет), где используются системы шаблонизации, злоумышленник не сможет сильно навредить, получив лишь ограниченный доступ.

Это сообщение отредактировал(а) lukas - 25.7.2009, 09:31


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
morfus
Дата 25.7.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 30.6.2007

Репутация: 1
Всего: 2



Опять таки зависит от ситуации, где-то легче шаблонизатор, а где-то РНР

В некоторых (небольших) проектах я вообще не заморачиваюсь и пишу HTML вперемешку с РНР, а всё оформление уходит в CSS, при несложном оформлении этого более чем достаточно...
PM MAIL WWW   Вверх
Mal Hack
Дата 25.7.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



lukas, все зависит от задачи. Где-то удобнее одно, где-то другое.
Тут нельзя не зная задачи что-то утверждать.
Я лично не люблю шаблонизаторы, потому что:
1. Это чужой код и черт его знает какие там ошибки.
2. Это универсальная обертка, которая в любом случае будет тормозить выполнение моего скрипта, по сравнению с точной подгонкой шаблоноизатора в коде ПХП.

Цитата(lukas @  25.7.2009,  10:22 Найти цитируемый пост)
Дело в том, что я должен предоставить возможность пользователю менять шаблоны отображения списка новостей (например) или еще что-то.
И у него нет прав к многим другим модулям CMS. Поэтому я не могу допустить, того, чтобы такой пользователь мог выполнять любой php скрипт, а это значит, что использовать PHP в качестве шаблонизатора ни в коем случае нельзя, это огромная дырень.

Это значит что ты систему коряво сделал (систему шаблонов и их запуск в ГУЕ), ибо по хорошему, ГУЙ не связан с функционалом ;) В широком смысле этого слова.
PM ICQ   Вверх
lukas
Дата 25.7.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(Mal Hack @  25.7.2009,  13:40 Найти цитируемый пост)
2. Это универсальная обертка, которая в любом случае будет тормозить выполнение моего скрипта, по сравнению с точной подгонкой шаблоноизатора в коде ПХП.


Есть разные шаблонизаторы, например которые компилируют в php код. И никакой потери в быстродействии.

Код

Это значит что ты систему коряво сделал (систему шаблонов и их запуск в ГУЕ), ибо по хорошему, ГУЙ не связан с функционалом ;) В широком смысле этого слова.


Зря ты так думаешь, почему это система шаблонов связана с функционалом? Посмотри на шаблоны например в UCOZ'e, там любой новичек может отдельно настроить вывод элемента новости, или регистрации в визуальном редакторе используя только шаблонные возможности.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Mal Hack
Дата 25.7.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(lukas @  25.7.2009,  15:36 Найти цитируемый пост)
Посмотри на шаблоны например в UCOZ'e, там любой новичек может отдельно настроить вывод элемента новости, или регистрации в визуальном редакторе используя только шаблонные возможности. 

Вот я про это и говорю, что система шаблонов не должна быть связана с функционалом, т.е. внутри PHP кода не должно быть что-то вроде: if(userValid) {print "<a href='admin.php'>ломани меня</a>"}.

Цитата(lukas @  25.7.2009,  15:36 Найти цитируемый пост)
ибо по хорошему, ГУЙ не связан с функционалом ;)


PM ICQ   Вверх
lukas
Дата 25.7.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(Mal Hack @  25.7.2009,  14:56 Найти цитируемый пост)
Вот я про это и говорю, что система шаблонов не должна быть связана с функционалом, т.е. внутри PHP кода не должно быть что-то вроде: if(userValid) {print "<a href='admin.php'>ломани меня</a>"}.


Да это уже другой вопрос.  smile 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Mal Hack
Дата 25.7.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(lukas @  25.7.2009,  17:00 Найти цитируемый пост)
Да это уже другой вопрос.  smile  


Цитата(lukas @  25.7.2009,  10:22 Найти цитируемый пост)
что использовать PHP в качестве шаблонизатора ни в коем случае нельзя, это огромная дырень.

Как раз он самый ;)
PM ICQ   Вверх
ruX
Дата 26.7.2009, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Цитата(Mal Hack @  25.7.2009,  13:40 Найти цитируемый пост)
1. Это чужой код и черт его знает какие там ошибки.

С такой параноей можно ничем не пользоваться, боясь что там ошибки. Изобретать самому велосипед, и быть уверенным что ни в чём не ошибся? 


Цитата(lukas @  25.7.2009,  14:36 Найти цитируемый пост)
Есть разные шаблонизаторы, например которые компилируют в php код. И никакой потери в быстродействии.

Взять тот же смарти, если посмотреть "откомпилированный" код... Можно заметить что руками бы куда лучше написал smile

Моё мнение совпадает с автором топика - если шаблоны пишешь не сам, то обязательно шаблонизатор. Тем более дизайнерам куда проще разобраться.
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 26.7.2009, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(ruX @  26.7.2009,  02:11 Найти цитируемый пост)
С такой параноей можно ничем не пользоваться, боясь что там ошибки. Изобретать самому велосипед, и быть уверенным что ни в чём не ошибся? 

Свой велосипед я могу подогнать четко под задачу, это раз. Два, ошибок будет 100% меньше, пусть это и не скромно звучит, но все-таки, одно дело когда код МОЙ скорее всего будет в 10 раз меньше, чем код смарти, к примеру, то вероятность ошибки будет как минимум в 10 раз меньше.

PM ICQ   Вверх
fesor
Дата 26.7.2009, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



lukas, что за бред? почему нельзя использовать PHP??? Если шаблоны компилятся в PHP значит можно сделать на PHP. 

Я сейчас использую PHP Native шаблонизатор для своих проектов (писал сам, и при желании можно пределать под компилятор (интерфейс то сохраняется)). Так что если заказчик потребует - сделаю шаблонизатор полноценный. Нет - его дело.
PM MAIL WWW   Вверх
ruX
Дата 26.7.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Цитата(Mal Hack @  26.7.2009,  01:49 Найти цитируемый пост)
Свой велосипед я могу подогнать четко под задачу, это раз. Два, ошибок будет 100% меньше, пусть это и не скромно звучит, но все-таки, одно дело когда код МОЙ скорее всего будет в 10 раз меньше, чем код смарти, к примеру, то вероятность ошибки будет как минимум в 10 раз меньше.

Ты не пользуешься сторонними компонентами вообще? Или ты конкретно про шаблонизаторы?
Велосипеды делают целые комманды, а благодаря опенсорс народ может и указывает на ошибки. Код более проработанный, хотя из за универсальности громоздкий
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
lukas
Дата 26.7.2009, 12:22 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(fesor @  26.7.2009,  09:22 Найти цитируемый пост)
lukas, что за бред? почему нельзя использовать PHP??? Если шаблоны компилятся в PHP значит можно сделать на PHP. 

Я сейчас использую PHP Native шаблонизатор для своих проектов (писал сам, и при желании можно пределать под компилятор (интерфейс то сохраняется)). Так что если заказчик потребует - сделаю шаблонизатор полноценный. Нет - его дело. 


Я имел ввиду, что когда вы предоставляете доступ для выполнения любого php кода, злоумышленик, который получил доступ только  к cms сможет сделать все что угодно, даже грохнуть весь сайт, ведь ему доступны все функции php.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
fesor
Дата 26.7.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



ну а что мешает ему получить доступ к файлам конфигов скажем? Или к самому index.php??? Это уже вопрос настройки доступа.
PM MAIL WWW   Вверх
Mal Hack
Дата 26.7.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(ruX @  26.7.2009,  11:50 Найти цитируемый пост)
Ты не пользуешься сторонними компонентами вообще?

Если есть что-то достойное, то почему бы и нет. PEAR тот же. Тут для меня главное, чтоб задачу модуль решал как мне надо. К сожалению, это редко бывает.

Цитата(ruX @  26.7.2009,  11:50 Найти цитируемый пост)
Или ты конкретно про шаблонизаторы?

Я конкретно про шаблоны. 

Цитата(ruX @  26.7.2009,  11:50 Найти цитируемый пост)
Код более проработанный, хотя из за универсальности громоздкий 

А громозкость - минус в скорости выполнения. Что касается проработки, что на 100% опенсурс код все равно не будет абсолютно устойчивым, без проверки временем. =)
PM ICQ   Вверх
lukas
Дата 26.7.2009, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(fesor @  26.7.2009,  12:45 Найти цитируемый пост)
ну а что мешает ему получить доступ к файлам конфигов скажем? Или к самому index.php??? Это уже вопрос настройки доступа. 


А то что в нормальной cms пользователь не должен иметь доступа к таким файлам, вообще файловый менеджер должен предоставлять доступ только к мультимедийной папке, где показываются только файлы с определенным расширением. И естественно где есть ограничение на загрузку файлов по расширению. Поэтому никакого доступа к php файлам нет, и тем более к config файлам.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1430 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.