Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> html в РНР или РНР - в HTML? С какой сотроны разбивать яйцо? 
:(
    Опции темы
GAM
Дата 18.6.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возник такой вот вопрос - в чём различие использования вставки через 
Код
 <?php ... ?><form action="<?php echo $url; ?>" method="get"><?php ... ?>

И 
Код

echo '<form action="' . $url . '" method="get">';


В чем разница между <?php echo $url; ?> и . $url . ?
PM MAIL   Вверх
Feldmarschall
Дата 18.6.2008, 19:57 (ссылка) |   (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



в оформлении
PM   Вверх
Mal Hack
Дата 18.6.2008, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Оформление тут не при чем.
Тут есть завязки и на использование буфера вывода и скорость работы скрипта в целом...
В принципе, оба варианта уступаю конструкции heredoc, хотя, конечно, все это индивидуально, но в 98% случаев heredoc наиболее оптимален. 
PM ICQ   Вверх
Fortop
Дата 19.6.2008, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Mal Hack, 
Цитата(Mal Hack @  18.6.2008,  23:54 Найти цитируемый пост)
heredoc наиболее оптимален.  

Да ну?

Код

$b = <<<HDOC
<?xml ?>
<root>
    <node>caption</node>
</root>
<<<HDOC;

var_dump($b);


Добавлено через 4 минуты и 19 секунд
пример с ошибкой smile ну да бог с ним smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Feldmarschall
Дата 19.6.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



хехе. очередное авторитетное замечание про скорость работы скриптов


Это сообщение отредактировал(а) Feldmarschall - 19.6.2008, 01:13
PM   Вверх
GAM
Дата 19.6.2008, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А то как хавает интерпритатор языка такие связки никаких нареканий нет по скорости или ещё каким тестам?
Или это что-то из разряда «как удобней» и не стоит обращать внимания?
PM MAIL   Вверх
Feldmarschall
Дата 19.6.2008, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Это что-то из разряда «как удобней» и не стоит обращать внимания.

Другое дело, что в скриптах вообще, по идее, не должно быть ни html, ни даже текста.
А в таком случае вопрос отпадает целиком. И единственный формат, который остается, это номер один, в, собственно, шаблонах.


PM   Вверх
GAM
Дата 19.6.2008, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не получится ли это что-то, на вроде SSI на PHP?
PM MAIL   Вверх
Feldmarschall
Дата 19.6.2008, 01:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Нет, даже близко не получится. SSI не язык, в отличие от.
Впрочем, никто не заставляет использовать шаблоны именно на РНР - есть море других вариантов. 
Я говорю не о том, что надо использовать, а о том, что изо всех перечисленных вариантов реально используется только один - первый. В случае применения в шаблонах. Если же используется другой шаблонизатор, то тогда вопрос html в php и вовсе не поднимается.
Хотя нет. еще есть компиляция. когда скрипты пишет не человек, а шаблонизатор. 
PM   Вверх
Mal Hack
Дата 19.6.2008, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Fortop, и что, так сказать вы показали своим примером?
Цитата(Feldmarschall @  19.6.2008,  00:52 Найти цитируемый пост)
хехе. очередное авторитетное замечание про скорость работы скриптов

А я в чем-то не прав? Я сказал явную глупость? Вы слишком голословны. Сказать "это [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме]" можно совершенно спокойно, а обосновать могут лишь профессионалы....

Цитата(GAM @  19.6.2008,  00:59 Найти цитируемый пост)
А то как хавает интерпритатор языка такие связки никаких нареканий нет по скорости или ещё каким тестам?
Или это что-то из разряда «как удобней» и не стоит обращать внимания? 

Я бы на вашем месте определенных бы товарищей слушал бы поменьше. Пару лет назад мы тут делали тесты на производительность скриптов при выводе. Тест, правда, был с echo и print и обособлением переменых, т.е. heredoc не использовался. Но, могу сказать по своему опыту, качественный тест я в свое время делал. Пусть и не совсем оптимально для теста, но, heredoc, его вывод, выполняется скриптом быстрее, ввиду того что внутренний парсинг проходит быстрее, ввиду более статичной структору шаблонной вставки.

Цитата(Feldmarschall @  19.6.2008,  01:10 Найти цитируемый пост)
Другое дело, что в скриптах вообще, по идее, не должно быть ни html, ни даже текста.
А в таком случае вопрос отпадает целиком. И единственный формат, который остается, это номер один, в, собственно, шаблонах.

Шаблоны не панацея. Для простой гостевой смылс вставлять шаблонный движок отсутствует полностью.
Это в качестве примера.

Цитата(GAM @  19.6.2008,  01:13 Найти цитируемый пост)
Не получится ли это что-то, на вроде SSI на PHP? 

SSI в ПХП, это redfile, если не изсенили того, что сразу в STDOUT идет отправление данных..

Цитата(Feldmarschall @  19.6.2008,  01:20 Найти цитируемый пост)
 что изо всех перечисленных вариантов реально используется только один - первый.

Вы ооочень сильно ошибаетесь. Первый вариант (множество <?php ... ?>) как раз-таки используется меньше всего, т.к. работает дольше всего, т.к. есть возможность несанкциониованной вставки. Главный принцип PHP программиста, один из, конечно, весь вывод должен быть только ОДИН раз (или минимальное кол-во), соответсвенно реализовывается это не первой конструкцией ;)
PM ICQ   Вверх
Feldmarschall
Дата 19.6.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Цитата(Mal Hack @  19.6.2008,  10:31 Найти цитируемый пост)
качественный тест я в свое время делал.

а тест был, разумеется, вида "мильён  итераций бессмысленных операций", а не ab -n 100 -c 2 на реальный урл.

Цитата(Mal Hack @  19.6.2008,  10:31 Найти цитируемый пост)
Для простой гостевой смысл вставлять шаблонный движок отсутствует полностью.

ну вот мы и переходим в область условностей. если не можем возразить по теме - изменим контекст =)
да ещё и так категорично, "отсутствует полностью". хехе. оставим это на совести автора
впрочем, можно поиграть и на его поле - нам не жалко. судя по всему, в этих гостевых проблема производительности стоит очень, очень остро   smile 

Цитата(Mal Hack @  19.6.2008,  10:31 Найти цитируемый пост)
Первый вариант (множество <?php ... ?>) как раз-таки используется меньше всего,

объясняю в третий раз. 
Допустим, у нас непростая гостевая книга, и шаблоны мы используем. 
В этом случае у нас два варианта
1. Используется шаблонизатор с псевдоязыком. В этом случае никаких хтмл тегов у нас в скрипте не пишется. То есть, проблемы их вывести не существует вовсе. Ни в первом варианте, ни во втором, ни в третьем.
2. В качестве шаблонизатора используется пхп. В этом случае применяется вариант номер один. 
В силу того, что единица больше нуля, мы делаем вывод, что при мало-мальски профессиональной разработке вариант один используется чаще других.

Это сообщение отредактировал(а) Feldmarschall - 19.6.2008, 11:05
PM   Вверх
Mal Hack
Дата 19.6.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Feldmarschall @  19.6.2008,  10:49 Найти цитируемый пост)
а тест был, разумеется, вида "мильён  итераций бессмысленных операций", а не ab -n 100 -c 2 на реальный урл.

Естественно. В данном случае тест был бы полностью испорчен. Нам нужна скорость вывода, а не скорость межсетевой передачи. Поэтому это излишне.

Цитата(Feldmarschall @  19.6.2008,  10:49 Найти цитируемый пост)
ну вот мы и переходим в область условностей. если не можем возразить по теме - изменим контекст =)

Это не условность, а реальный пример, чтобы не быть голословным, и от темы я не отхожу, т.к. привел конкретный пример, объяснив его.

Цитата(Feldmarschall @  19.6.2008,  10:49 Найти цитируемый пост)
да ещё и так категорично, "отсутствует полностью". хехе. оставим это на совести автора

Категорично, т.е. задача должна быть решена оптимально, рационально и т.п. Технологию никто не отменял.
Реализовать-то можно, с точки зрения практики, но вот смысл добираться до зуба через анальное отверстие - никакого.ь Еще как пример абстракции, зачем готовить 100 котлет, если будет всего 2-3 гостя??...

Цитата(Feldmarschall @  19.6.2008,  10:49 Найти цитируемый пост)
В этом случае у нас два варианта

Неправильно.
Шаблонами все равно будет управлять PHP.
И роль играют другие варианты.
1. - как вы показали - вывод через  <?php .. . ?> Динамичность очень тяжело получить. Шаблоны перекрещиваются с PHP.
2. echo и print множество число раз, шаблонов в принуипе нет.
3. Шаблоны лежат в отдельном файле аля .tpl и парсятся встроенным спецшаблонизатором. Аля смарти.  Тяжеловесен этот вариант, это его основной недостаток.
4. Используем шаблоны как на этом форуме, т.к. куски кода загоняются в пхп функции через heredoc и в нужном месте вызывается нужная функция (вот я говорю о оптимальности этого варианта).

Отличие 3 от 4, в том, что в 3 варианте вся пляска идет от шаблона, структуры шаблона, переменных, макродиректив, а в 4 варианте пляска идет от скрипта, что лучше, т.к. если вам надо малость поменять технологическую структуру шаблона вам придется и код апгрейдить существенным образом. Проверено. И так писали и эдок....

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

Вот у нас в универе, так сказать, принято, что любое инженерное предположение должно быть обосновано, причем интуиция и прочие фишки - отменяются. "что единица больше нуля," это не техническое обоснование ;)
PM ICQ   Вверх
gta4kv
Дата 19.6.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



Цитата(Mal Hack @ 19.6.2008,  11:07)
4. Используем шаблоны как на этом форуме, т.к. куски кода загоняются в пхп функции через heredoc и в нужном месте вызывается нужная функция (вот я говорю о оптимальности этого варианта).

ipb 1.3 это вообще не самый лучший пример smile
В 2.3(можетраньшехз) убрал из кода все heredoc'и, и вообще текст. и по-моему они сделали это не просто так ;)
PM MAIL   Вверх
Feldmarschall
Дата 19.6.2008, 11:35 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


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

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



Мне это уже начинает надоедать.
Убеждать человека, который года четыре назад был крупным специалистом, в его собственной неправоте - неблагодарная задача. Он давно привык, что всегда прав. Особенно когда он не замечает, что даже сам себе противоречит.
Я попробую ещё раз. Последний.

Цитата(Mal Hack @  19.6.2008,  11:07 Найти цитируемый пост)
Нам нужна скорость вывода, а не скорость межсетевой передачи.

Речь не о межсетевой передаче. аб прекрасно можно использовать локально. 
Речь о том, что эта мифическая скорость вывода не имеет никакого реального значения. 
Пять копеек на 500% больше, чем одна копейка. Это подтвердят любые тесты. Но выбирая между двумя батонами хлеба, один из которых стоит 9-91, а другой - 9-95, на эту разницу никто не будет обращать внимания.
Потому что во всей этой мышиной возне с оптимизацией одинарных кавычек важны не абсолютные цифры, а относительные

Цитата(Mal Hack @  19.6.2008,  11:07 Найти цитируемый пост)
Зачем готовить 100 котлет, если будет всего 2-3 гостя??...

Но при этом нас до ужаса волнует скорость приготовления этих котлет. Будем всем доказывать превосходство одного способа над другими.
"Иван Соломонович, вы или крестик снимите, или трусики наденьте". 
Или у нас что-то серьёзное, где мы секунды считаем, или та самая гостевая на 2-3 посетителя. Во втором случае при чем здесь вообще все эти рассуждения о производительности?

Цитата(Mal Hack @  19.6.2008,  11:07 Найти цитируемый пост)
4. Используем шаблоны как на этом форуме, т.к. куски кода загоняются в пхп функции через heredoc и в нужном месте вызывается нужная функция (вот я говорю о оптимальности этого варианта).

Теперь ясно. Какие-то маргиналы используют метод, о котором я впервые слышу. Смарти - знаю. blitz - видел. ZF - пробовал. XTemplate - использовал. А тут такой революционный подход - хередок в функциях. Это у них называется шаблонизацией. 
Ну что ж мне придется взять свои слова обратно. Окей, хередок - это тоже метод "шаблонизации".
PM   Вверх
lukas
Дата 19.6.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


а особенно что то вроде этого...

Код

<?if(true):?>
 <div>
   Тут текст
 </div>
<?endif?>


это намного удобнее чем писать

Код

if(true)
 {
  echo '<div>';
  echo 'Тут текст';
  echo '</div>';  
 }


да и код HTML более красивый получается... при первом случае...

Это сообщение отредактировал(а) lukas - 19.6.2008, 19:38


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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