![]() |
|
Модераторы: LSD |
![]()
|
|
| GAM |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 3.3.2005 Репутация: нет Всего: 2 |
Возник такой вот вопрос - в чём различие использования вставки через
И
В чем разница между <?php echo $url; ?> и . $url . ? |
||||
|
|||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
в оформлении
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Оформление тут не при чем.
Тут есть завязки и на использование буфера вывода и скорость работы скрипта в целом... В принципе, оба варианта уступаю конструкции heredoc, хотя, конечно, все это индивидуально, но в 98% случаев heredoc наиболее оптимален. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Mal Hack,
Да ну?
Добавлено через 4 минуты и 19 секунд пример с ошибкой -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
хехе. очередное авторитетное замечание про скорость работы скриптов
Это сообщение отредактировал(а) Feldmarschall - 19.6.2008, 01:13 |
|||
|
||||
| GAM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 3.3.2005 Репутация: нет Всего: 2 |
А то как хавает интерпритатор языка такие связки никаких нареканий нет по скорости или ещё каким тестам?
Или это что-то из разряда «как удобней» и не стоит обращать внимания? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Это что-то из разряда «как удобней» и не стоит обращать внимания.
Другое дело, что в скриптах вообще, по идее, не должно быть ни html, ни даже текста. А в таком случае вопрос отпадает целиком. И единственный формат, который остается, это номер один, в, собственно, шаблонах. |
|||
|
||||
| GAM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 3.3.2005 Репутация: нет Всего: 2 |
Не получится ли это что-то, на вроде SSI на PHP?
|
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Нет, даже близко не получится. SSI не язык, в отличие от.
Впрочем, никто не заставляет использовать шаблоны именно на РНР - есть море других вариантов. Я говорю не о том, что надо использовать, а о том, что изо всех перечисленных вариантов реально используется только один - первый. В случае применения в шаблонах. Если же используется другой шаблонизатор, то тогда вопрос html в php и вовсе не поднимается. Хотя нет. еще есть компиляция. когда скрипты пишет не человек, а шаблонизатор. |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Fortop, и что, так сказать вы показали своим примером?
А я в чем-то не прав? Я сказал явную глупость? Вы слишком голословны. Сказать "это [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме]" можно совершенно спокойно, а обосновать могут лишь профессионалы.... Я бы на вашем месте определенных бы товарищей слушал бы поменьше. Пару лет назад мы тут делали тесты на производительность скриптов при выводе. Тест, правда, был с echo и print и обособлением переменых, т.е. heredoc не использовался. Но, могу сказать по своему опыту, качественный тест я в свое время делал. Пусть и не совсем оптимально для теста, но, heredoc, его вывод, выполняется скриптом быстрее, ввиду того что внутренний парсинг проходит быстрее, ввиду более статичной структору шаблонной вставки. Шаблоны не панацея. Для простой гостевой смылс вставлять шаблонный движок отсутствует полностью. Это в качестве примера. SSI в ПХП, это redfile, если не изсенили того, что сразу в STDOUT идет отправление данных..
Вы ооочень сильно ошибаетесь. Первый вариант (множество <?php ... ?>) как раз-таки используется меньше всего, т.к. работает дольше всего, т.к. есть возможность несанкциониованной вставки. Главный принцип PHP программиста, один из, конечно, весь вывод должен быть только ОДИН раз (или минимальное кол-во), соответсвенно реализовывается это не первой конструкцией ;) |
||||
|
|||||
| Feldmarschall |
|
||||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
а тест был, разумеется, вида "мильён итераций бессмысленных операций", а не ab -n 100 -c 2 на реальный урл.
ну вот мы и переходим в область условностей. если не можем возразить по теме - изменим контекст =) да ещё и так категорично, "отсутствует полностью". хехе. оставим это на совести автора впрочем, можно поиграть и на его поле - нам не жалко. судя по всему, в этих гостевых проблема производительности стоит очень, очень остро
объясняю в третий раз. Допустим, у нас непростая гостевая книга, и шаблоны мы используем. В этом случае у нас два варианта 1. Используется шаблонизатор с псевдоязыком. В этом случае никаких хтмл тегов у нас в скрипте не пишется. То есть, проблемы их вывести не существует вовсе. Ни в первом варианте, ни во втором, ни в третьем. 2. В качестве шаблонизатора используется пхп. В этом случае применяется вариант номер один. В силу того, что единица больше нуля, мы делаем вывод, что при мало-мальски профессиональной разработке вариант один используется чаще других. Это сообщение отредактировал(а) Feldmarschall - 19.6.2008, 11:05 |
||||
|
|||||
| Mal Hack |
|
||||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
Естественно. В данном случае тест был бы полностью испорчен. Нам нужна скорость вывода, а не скорость межсетевой передачи. Поэтому это излишне.
Это не условность, а реальный пример, чтобы не быть голословным, и от темы я не отхожу, т.к. привел конкретный пример, объяснив его.
Категорично, т.е. задача должна быть решена оптимально, рационально и т.п. Технологию никто не отменял. Реализовать-то можно, с точки зрения практики, но вот смысл добираться до зуба через анальное отверстие - никакого.ь Еще как пример абстракции, зачем готовить 100 котлет, если будет всего 2-3 гостя??... Неправильно. Шаблонами все равно будет управлять PHP. И роль играют другие варианты. 1. - как вы показали - вывод через <?php .. . ?> Динамичность очень тяжело получить. Шаблоны перекрещиваются с PHP. 2. echo и print множество число раз, шаблонов в принуипе нет. 3. Шаблоны лежат в отдельном файле аля .tpl и парсятся встроенным спецшаблонизатором. Аля смарти. Тяжеловесен этот вариант, это его основной недостаток. 4. Используем шаблоны как на этом форуме, т.к. куски кода загоняются в пхп функции через heredoc и в нужном месте вызывается нужная функция (вот я говорю о оптимальности этого варианта). Отличие 3 от 4, в том, что в 3 варианте вся пляска идет от шаблона, структуры шаблона, переменных, макродиректив, а в 4 варианте пляска идет от скрипта, что лучше, т.к. если вам надо малость поменять технологическую структуру шаблона вам придется и код апгрейдить существенным образом. Проверено. И так писали и эдок....
Вот у нас в универе, так сказать, принято, что любое инженерное предположение должно быть обосновано, причем интуиция и прочие фишки - отменяются. "что единица больше нуля," это не техническое обоснование ;) |
||||||||
|
|||||||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: нет Всего: 91 |
ipb 1.3 это вообще не самый лучший пример В 2.3(можетраньшехз) убрал из кода все heredoc'и, и вообще текст. и по-моему они сделали это не просто так ;) |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Мне это уже начинает надоедать.
Убеждать человека, который года четыре назад был крупным специалистом, в его собственной неправоте - неблагодарная задача. Он давно привык, что всегда прав. Особенно когда он не замечает, что даже сам себе противоречит. Я попробую ещё раз. Последний. Речь не о межсетевой передаче. аб прекрасно можно использовать локально. Речь о том, что эта мифическая скорость вывода не имеет никакого реального значения. Пять копеек на 500% больше, чем одна копейка. Это подтвердят любые тесты. Но выбирая между двумя батонами хлеба, один из которых стоит 9-91, а другой - 9-95, на эту разницу никто не будет обращать внимания. Потому что во всей этой мышиной возне с оптимизацией одинарных кавычек важны не абсолютные цифры, а относительные Но при этом нас до ужаса волнует скорость приготовления этих котлет. Будем всем доказывать превосходство одного способа над другими. "Иван Соломонович, вы или крестик снимите, или трусики наденьте". Или у нас что-то серьёзное, где мы секунды считаем, или та самая гостевая на 2-3 посетителя. Во втором случае при чем здесь вообще все эти рассуждения о производительности? Теперь ясно. Какие-то маргиналы используют метод, о котором я впервые слышу. Смарти - знаю. blitz - видел. ZF - пробовал. XTemplate - использовал. А тут такой революционный подход - хередок в функциях. Это у них называется шаблонизацией. Ну что ж мне придется взять свои слова обратно. Окей, хередок - это тоже метод "шаблонизации". |
|||
|
||||
| lukas |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
вообще первый метод намного удобнее... для дальнейшего разбора... практически всегда использую первый способ...
а особенно что то вроде этого...
это намного удобнее чем писать
да и код HTML более красивый получается... при первом случае... Это сообщение отредактировал(а) lukas - 19.6.2008, 19:38 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
||||
|
|||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |