Помогите разобраться

Ilya_89

Новичок
Добрый день. Я новичок php, поэтому помогите пожалуйста разобраться вот в чем.

Все время, что я писал на php, я делал это довольно просто. Php код я писал вперемешку с html, который выдавал на страницу через echo. Свои функции я писал только для всяких проверок/обработок, много раз повторяющихся в коде.
Однажды я столкнулся с кодом человека, который написал и применял свои функции для вывода html на страницу. Я тогда удивился и не понял зачем это. А вот сейчас начинаю задумываться...
Так вот ответьте пожалуйста на вопрос: имеет ли место такой стиль программирования, где html выдается на страницу при вызове соответствующих функций? Разумно ли это?

Сейчас у меня появилось желание освоить ООП, читаю литературу, делаю простейшие примерчики.
Так вот скажите пожалуйста, каково оно в серьезных проектах? Используются ли объекты для вывода html на страницу? Или для чего их использовать?
Просто очень хочется понять как писать правильно. Ведь то, как я писал до этого не верно...

Простите за сумбур и за объем. Надеюсь на помощь.
За ранее спасибо.
 

Krishna

Продался Java
Ilya_89

Почитай http://www.ozon.ru/context/detail/id/4030251/ .
Там для новичка именно то, что нужно.

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

shelestov

я тут часто
Ilya_89

Почитай http://www.ozon.ru/context/detail/id/4030251/ .
Там для новичка именно то, что нужно.

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

Духовность™

Продвинутый новичок
Там для новичка именно то, что нужно.
На вопросы автора эта книга не даст полных ответов. Он же уже что-то писал, ему сейчас надо про шаблоны узнать.

Так вот ответьте пожалуйста на вопрос: имеет ли место такой стиль программирования, где html выдается на страницу при вызове соответствующих функций? Разумно ли это?
Нет, в 99% случаев это не разумно. Оставшийся 1% - это т.н. хэлперы, функции или объекты, которые генерируют html. Примером такого хэлпера может быть функция, рисующая текстовое поле на основании каких-то данных, таких как имя_поля, значение, тип. В остальном, твои программы должны быть разделены на
- код PHP
- код HTML с основными структурами управления PHP
Код на PHP генерирует какие-то данные, далее подключается шаблон на HTML, в котором прописаны те "места", куда нужно вставить данные, сгенерированные скриптом на PHP. Пример такого подхода:

Код на PHP: http://pastebin.com/wdsEzrvg
Код на HTML (шаблон) http://pastebin.com/JDGPFzzw

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

Как видишь, в коде на PHP нет никакого HTML, а в HTML нет никакой логики программы, только вывод того, что сгенерировала программа на PHP. Заметь, в шаблоне используются разные хэлперы - это о твоем вопросе, нужно ли выводить HTML через функции. В некоторых случаях можно, но эти случаи крайне редки.

Понятно?
 

Духовность™

Продвинутый новичок
Сейчас у меня появилось желание освоить ООП, читаю литературу, делаю простейшие примерчики.
Так вот скажите пожалуйста, каково оно в серьезных проектах? Используются ли объекты для вывода html на страницу?
Тема объектов никак не связана с темой шаблонов.
 

KorP

Новичок
Духовность™
а что лучше на тему шаблонов почитать?
 

Духовность™

Продвинутый новичок
Духовность™
а что лучше на тему шаблонов почитать?
А что там читать? Там читать то особо нечего - скрипт на PHP формирует данные, html код со вставками PHP эти данные выводит.. в интернете, кстати, на тему шаблонизации на PHP нет ни одной нормальной статьи. Роман на http://phpfaq.ru/tpl уж очень намудрил с темой шаблонов - очень много философии, а знаменитая статья http://spectator.ru/technology/php/easy_templates не отражает всей глубины глубин.. по меньшей мере, я не сразу понял то, что автор имеет в виду. А он имеет в виду факт того, что PHP сам по себе мощнейший шаблонизатор.
 

KorP

Новичок
А что там читать?
когда ни разу не сталкивался - есть что почитать. то что один скрипт формирует данные6 а другой выводит это понятно. смарти по-моему по такой схеме и работает!?

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

shelestov

я тут часто
На вопросы автора эта книга не даст полных ответов.
Глава 47. Шаблонизатор.
Есть общие принципы построния шаблонизаторов, дальше идет про Smarty.

Думаю будет достаточно чтобы примерно понять суть шаблонов.

П.С. Это первое издание, покупал в 2005-м. Думаю во втором мало изменений.
 

Ilya_89

Новичок
Всем спасибо большое за ответы.
Духовность™
Спасибо большое вам за примеры, за разъяснения. Это мне очень поможет.
Уже сейчас многое проясняется, в ближайшее время рассмотрю ваши примеры подробнее.

Если какие-то вопросы возникнут, спрошу в этой теме. Если никто не против.

Глава 47. Шаблонизатор.
Спасибо, книга у меня имеется в электронном виде. Обязательно ознакомлюсь с этой главой.
 

Krishna

Продался Java
Познакомиться надо не с "этой главой", а прочитать её от начала и до конца.
 

Духовность™

Продвинутый новичок
Глава 47. Шаблонизатор.
Есть общие принципы построния шаблонизаторов, дальше идет про Smarty.
я бы вообще запретил упоминать Smarty при новичках. А лучше бы вообще запретить это идиотичное создание.
 
  • Like
Реакции: AmdY

Духовность™

Продвинутый новичок
— да один товарищ как-то грозился. Дальше слов дело не пошло.
товарищ до сих пор хочет написать статью, но уже в рамках собственного маленького, но очень гордого интернет-издания. А руки все не доходят - сказывается вековая моя усталость...
 

KorP

Новичок
товарищ до сих пор хочет написать статью, но уже в рамках собственного маленького, но очень гордого интернет-издания. А руки все не доходят - сказывается вековая моя усталость...
ну может помочь как то надо, что б оно родилось скорее? :)
 
Сверху