Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Привет всем. Подскажите начинающему программисту, а зачем нужна шаблонизация в виде smarty и ему подобные? Ведь куча всякого кода, зачем... Если можно в одной странице прописать <?php $a="Заголовок"; require "header.php"; в header.php файле принять переменную <p> Здесь: <?php $a > </p> Зачем городить огороды с шаблонизаторами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 19:33 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Нестер, Чтобы разделить бизнес-логику и логику отображения. К тому же PHP сам является шаблонизатором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 19:49 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
NekZНестер, Чтобы разделить бизнес-логику и логику отображения. К тому же PHP сам является шаблонизатором Ну так какая разница между вставками {$title} и <?php $title > ?? Что так есть лишние элементы, с точки зрения "логики отображения", что так ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 19:57 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Нестер, В большом проекте с большой кодовой базой будет легко запутаться будет в коде, который и обрабатывает данные от пользователя, делает кучу сложных действий и т. д. А в случае подхода с шаблонизатором, логика отображения лежит полностью на контенте шаблонов, а основная бизнес-логика находится уже в скриптовых файлах. Такой подход не только удобен в плане организации кода (например, верстальщик не захочет идти в PHP-файл и смотреть где там вёрстка поехала, ему удобнее работать с файлами шаблонов, где чистые HTML/CSS/JS с небольшими вставками шаблонных тегов, которые ему уже проще понять), так и в плане уменьшения связанности компонентов, например, рендерить данные не в HTML, а в JSON, тем самым мы избавимся от жёсткой привязки скрипта бизнес-логики к логике отображения. Хотя, с PHP я дела не имел особо, пару лаб на нём пришлось делать, так что, могу и ошибаться. Python+Django изначально обязывают использовать шаблонизатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 20:11 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
начинаешь писать так. потом понимаешь что нужно куча всего. потом выносишь одинаковый функционал в одельные функции. называешь "шаблонизатором" Вуаля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 22:15 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
НестерНу так какая разница между вставками {$title} и <?php $title > ??Первый вариант работает и в шаблоне Smarty и в PHP, второй вообще не работает в приведённом виде. Чтоб заработало, нужно писать <?php echo $title ?> . Теперь попробуйте сравнить удобочитаемость и вероятность допущения ошибки по каждому из вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2015, 22:44 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
>Нестер Однажды, я также как и вы задумался об этом: 'нужно ли мне это?'. Подключил к своему проекту шаблонизатор twig... Было очень непривычно, после использования всяких пхп-шных вставок, да новшество синтаксиса twig требовал поминутного заглядывания в справку по шаблонизатору. Но прошло какое-то время и теперь я понимаю, что это очень удобно, и теперь можно запросто отделить мух от котлет:) PS: имхо, суммарное количество кода, правда, становится больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2015, 08:15 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
vkle, Да конечно, забыл echo........) Вообщем ясно, когда всё усложняется, то нужен блэкджэк и ещё что нибудь - это и есть шаблонизаторы ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2015, 08:33 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Нестер, "методологии экстремального программирования" Первый принцип:Вам не обязательно это нужно. Второй:Сделайте самый простой работающий вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2015, 12:15 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
НестерДа конечно, забыл echo........)И вопросительный знак не туда вляпался. Итого - две ошибки на 20 знаков текста. Понимаю, что по запарке. Однако, как раз запарки то и провоцируют на ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2015, 19:23 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
НестерПривет всем. Подскажите начинающему программисту, а зачем нужна шаблонизация в виде smarty и ему подобные? Ведь куча всякого кода, зачем... Если можно в одной странице прописать <?php $a="Заголовок"; require "header.php"; в header.php файле принять переменную <p> Здесь: <?php $a > </p> Зачем городить огороды с шаблонизаторами? незачем. ты верно подметил, и верно подметили что пхп сам является по сути шаблонизатором, который развился очень сильно. просто некоторым жить трудно, вот и придумывают некую ересь. иногда даже не плохо получается. но если шаблонов куча, и для твоего сайта делаю их я, откуда тебе знать что я туда на пхп не вписал чтото зловредное - слив паролей из базы например... вот здесь может и оказаться полезным шаблонизатор. другой плюс. представь себе, смарти написаный и для пхп, и для питона, и для ноуд-джиес, и для перла, и для кучи других языков спомобных быть серверным языком для веба. тогда один шабло, будет без проблем приниматся на всех этих языках. чего не скажешь о шаблоне штмл+пхп. но это уже идёт в сторону фантастики. ну типа как ...один недавно выступал на тему, как круто использовать доктрину, тогда без проблем можно поменять базу данных с мускла на постгри скажем, и все будет работать. и естественно, ни один его проект не переходил на другую субд, но вот он себе и другим мозги парит постоянно когда надо запрос сложнее селект + джоин плюс возможно гроуп бай. так что. плюсы есть. точно также как полезен йогурт, но если сесть его ведро буздумно...то прийдёться занять на сутки стратегическую высоту 45см над уровнем пола в параше(высота толчка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 09:24 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
НестерПривет всем. Подскажите начинающему программисту, а зачем нужна шаблонизация... Я всё пишу в PHP, он весь код HTML собирает в одну строковую переменную $strHTML, которую в конечном итоге показываю в браузере. Вставки в виде <?php a$ ?> оказались неудачными хотя бы потому, что они не позволяют делать динамичные страницы. В любом случае приходится PHP-код хранить в отдельном файле от HTML, чтобы вызывать этот файл на исполнение через AJAX. Если PHP внутри кода HTML, то его через AJAX уже не вызовешь. И я добился у себя в проекте такого удобства, что основной шаблон HTML могу увидеть - как он будет выглядеть в обычном HTML-редакторе до того, как он попадет на сервер. Блоки кода вставляю в шаблон через поиск-замену между комментариями <!-- НАЧАЛО ТАКОГО-ТО БЛОКА-->..... <!-- КОНЕЦ ТАКОГО-ТО БЛОКА --> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 18:56 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Нестер, Если не большие проекты, то скорей всего лучше без всяких шаблонов, но когда кода много, всякие разделы, админ панели, юзер интерфейсы, ну в общем если очень много кода. То лучше разделить логику и отображение. Хотяб чисто для того, чтоб было проще искать. Ну когда сам пишешь проект с нуля типа, то примерно знаешь, где мухи лежат, а где котлетки. А когда приходиться разбираться в чужом коде, то лучше когда есть папочки типа: template, functions и тд. И сразу становиться понятно, где, что можно и нужно искать и править и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 19:16 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Алексей Смирновчто они не позволяют делать сдаётся мне, что просто готовить не умеешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 19:59 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
DeLemurЕсли не большие проекты, то скорей всего лучше без всяких шаблоновНе могу в полной мере согласиться. Даже если проектик на три веб-странички, все равно, его удобнее делать хотя бы с минимумом шаблонов. Конечно, я не призываю для простого проекта использовать такой навороченный шаблонизатор, как Smarty. Конфигурация страниц в любом случае подчиняется каким-то минимальным требованиям HTML - head, стили, метатеги, скрипты, body со своими менюшками, основным блоком, футером - вот уже неизменная от страницы к странице структура со своими постоянными и изменяюшимися фрагментами. Шаблон? Конечно, шаблон. Простейший, средствами PHP. Постоянные фрагменты пишем прямо в коде шаблона в формате heredoc, изменяющиеся подключаем через переменные. Надо будет сделать одно глобальное изменение - правим один файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 20:38 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
vkle, противоречия нет - шаблоны - с фрагментами PHP, библиотечный код - отдельно речь о том что нет особого смысла изобретать дополнительный шаблонный яхык ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 21:11 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Алексей СмирновНестерПривет всем. Подскажите начинающему программисту, а зачем нужна шаблонизация... Я всё пишу в PHP, он весь код HTML собирает в одну строковую переменную $strHTML, которую в конечном итоге показываю в браузере. Вставки в виде <?php a$ ?> оказались неудачными хотя бы потому, что они не позволяют делать динамичные страницы. В любом случае приходится PHP-код хранить в отдельном файле от HTML, чтобы вызывать этот файл на исполнение через AJAX. Если PHP внутри кода HTML, то его через AJAX уже не вызовешь. И я добился у себя в проекте такого удобства, что основной шаблон HTML могу увидеть - как он будет выглядеть в обычном HTML-редакторе до того, как он попадет на сервер. Блоки кода вставляю в шаблон через поиск-замену между комментариями <!-- НАЧАЛО ТАКОГО-ТО БЛОКА-->..... <!-- КОНЕЦ ТАКОГО-ТО БЛОКА --> чтото нето. ну тоесть правильно, но не то. то что ты назвал проблемами, это да, проблемы, но решаемые елементарно и без костылей. и главное. УЧИТЫВАЯ что шаблонизатор сделан на пхп, то сразу стаёт очевидным, что если у вас без шаблонизатора трудность А, то вы её можете обойти (как минимум подсмотреть как шаблонизатор написан) шаблонизатор нужно использовать если именно серия трудностей...чтоб не пилить велосипеды, то использовать ,а если отдельные вещи, вот как Смирнов, то поддерживаю его, придумал себе выход, работает, и молодец. в отличии от того кто ради одной команды мейл винтит мейлер, ради одного нюанса смарти, и потом сидит и ищет ошибки дольше когда чтото не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 21:33 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
alex564657498765453вот как Смирнов, то поддерживаю его, придумал себе выход выход придумал, названия ob_* функций запомнить не смог похоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2015, 21:40 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
НестерЗачем городить огороды с шаблонизаторами? чтоб код проекта был читаем и поддерживаем! Да и что б каждый раз велосипет не изобретать!! так как интересно это только по самой первости и потом хоть волком вой! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 08:35 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
NekZК тому же PHP сам является шаблонизатором И это ужасно. Двадцать лет назад интернет был в зачаточном состоянии, для задач сайтостроения двадцатилетней давности язык-шаблонизатор - это нормальное решение. Википедия нам говорит, что ПХП это не что иное как " препроцессор гипертекста ", то есть средство обработки текстовых данных, да к тому же еще "Инструмент для создания персональных веб-страниц". Короче говоря, первоначально ПХП не задумывался как язык программирования и тем более как профессиональный инструмент. Его ниша - автоматизация рутинных операций вёрски HTML-разметки для продвинутых любителей. Собственно, эту задачу - автоматизацию вёрстки и выполняют шаблонизаторы: jinja, mako, хамелеон, смарти - тысячи их, и все они с той или иной степенью сложности, удобства, функциональности выполняют одну задачу - препроцессинг гипертекста. Никому не придет в голову взять шаблонизатор и писать на нём бизнес-логику. Беда ПХП в том, что с годами этот шаблонизатор разросся до жуткого уродливого комбайна, привлекающего двоечников кажущейся простотой. Его надо было закопать сразу, как только оно научилось коннектится к СУБД, потому что это нарушает первое правило робототехники: никаких побочных эффектов в слое представления. Сейчас изобретено столько различных архитектур позволяющих эффективно разделить по слоям код разной ответственности, что размышления аля "а нахрена оно мне, если есть няшный пхп где в кучу можно валить клиентский код и инсерты в базу" похожи на рассуждения Шарикова о том, как всё взять и поделить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 09:08 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
FishHookNekZК тому же PHP сам является шаблонизатором И это ужасно. Двадцать лет назад интернет был в зачаточном состоянии, для задач сайтостроения двадцатилетней давности язык-шаблонизатор - это нормальное решение. Википедия нам говорит, что ПХП это не что иное как " препроцессор гипертекста ", то есть средство обработки текстовых данных, да к тому же еще "Инструмент для создания персональных веб-страниц". Короче говоря, первоначально ПХП не задумывался как язык программирования и тем более как профессиональный инструмент. Его ниша - автоматизация рутинных операций вёрски HTML-разметки для продвинутых любителей. Собственно, эту задачу - автоматизацию вёрстки и выполняют шаблонизаторы: jinja, mako, хамелеон, смарти - тысячи их, и все они с той или иной степенью сложности, удобства, функциональности выполняют одну задачу - препроцессинг гипертекста. Никому не придет в голову взять шаблонизатор и писать на нём бизнес-логику. Беда ПХП в том, что с годами этот шаблонизатор разросся до жуткого уродливого комбайна, привлекающего двоечников кажущейся простотой. Его надо было закопать сразу, как только оно научилось коннектится к СУБД, потому что это нарушает первое правило робототехники: никаких побочных эффектов в слое представления. Сейчас изобретено столько различных архитектур позволяющих эффективно разделить по слоям код разной ответственности, что размышления аля "а нахрена оно мне, если есть няшный пхп где в кучу можно валить клиентский код и инсерты в базу" похожи на рассуждения Шарикова о том, как всё взять и поделить. ты верно подметил, но упустил один важный момент!!! согласно любой медицинской теории, здоровье - это мыть руки с мылом всегда, не пить из горла(там бактерии), стирать гладить одежду гигиена!!! мыть всегда яблоки, здоровый сон, не сидеть до позна и прочееееееее. делиться по категориям - гигиена, питание, здоровый образ жизни... ты всё это делаешь? ниразу не сказал - а нахрена мне мыть яблоко, если можно просто протиреть??? ложишся спать всегда вовремя что бы не быть выспаным. я не говорю про выпивку и сигареты - ибо это хочеться...но врядли тебе хочеться быть не выспаным, или есть грязное, или ходить в липких носках. и вот вопрос - ты шариков??? ------ по фразе изобретено столько различных архитектур, лично явижу человека который начитался статеек. и не видит главной цели програмиррования - аффективный надёжный отказоустойчивый код - ясен пень робочий. а вот всё остальное - по мере необходимости в меру возможности. и вопрос не опытного, вполне умесный - смарти, что это ...стоит остановить любые движения назад пока не изучу, ибо дальше двигаться нет смысла, или это так себе - мож забить и не вспоминать. и ему сдесь верно ответили, смарти - не в числе первой необходимости, он не являеться критичным, учишься програмировать на пхп, учись и не забивай себе голово сейчас смарти. а плюсы шаблонизатора, я описал и ты подтвердил - не возможность в шаблоне нашкодить, слив паролей если чужой шаблон, просто ошибки - если смарти на пхп и на питоне, то один шаблон на оба движка сайта станет как родной. как думаешь, ему сейчас грозит перевод сайта с пхп на питон, или использование чужого шаблона на смарти, где жулик вписал зловредный код??? или он сам в шаблоне вписал бы ошибку, а вот будет смарти, а бизнес логика в модели, и там ошибку туже не сделает??? лозунг твой основан на верной мысли, но ты явно эту мысль не понимаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 17:42 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
alex564657498765453учись и не забивай себе голово сейчас смарти alex564657498765453он не являеться критичным, alex564657498765453а вот будет смарти, а бизнес логика в модели, и там ошибку alex564657498765453по фразе изобретено столько различных архитектур, лично явижу человека очень, очень важно мнение твоё чурка-сан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2015, 18:12 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Смарти - это что-то типа крутое, что ушло не в ту сторону, а потому стало излишним и не нужным. (щас пинать меня начнут наверное, но всё же выскажу своё мнение :) ) Шаблон - это должно быть что-то простое, что просто отображает пришедшие данные. ПОДГОТОВЛЕННЫЕ К ВЫВОДУ данные. Нафига же в таком случае в Смарти наворотили циклы, условия и кучу разной фигни? Сами что-ли не разобрались как это работает? Берём один из общепринятых паттернов - MVC Модели - бизнес логика Контроллер - обработка данных из моделей, и подготовка их к выводу (ну и наоборот, подготовка введённых данных для работы) Представление - вывод ПОДГОТОВЛЕННЫХ контроллером данных. Учитывая то, что в шаблонизатор (а именно в парсер шаблонов) поступают строго определённые и ожидаемые структуры данных, то и само ядро шаблонизатора может решать, нужно ли тут данные выводить в цикле, или же это единичный объект, или же вообще выводить ничего не надо. И вот тогда рождается идеальная, по моему мнению, структура: в представлении ни буковки кода. Конечно немного больше забот ложится на плечи контроллеров, но ведь для этого они и созданы. Ну... в общем пинайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2015, 09:45 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
Програмёр, подобный подход реализован, например, тут практика показывает, что это неудобно. Когда нужно внутри цикла реализовать что-то чуть более сложное, чем в туториале, получается каша и разметка становится совершенно нечитаемой. Например, нужна полосатая таблица неизвестного заранее размера, каждую пятую строку надо выделить цветом, каждый третий столбец содержит сумму предыдущих. Или постройка нетривиального дерева в бутстрапе. С циклами это делается элементарно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2015, 10:10 |
|
||
|
Зачем нужна шаблонизация?
|
|||
|---|---|---|---|
|
#18+
FishHookПрограмёр, подобный подход реализован, например, тут практика показывает, что это неудобно. Когда нужно внутри цикла реализовать что-то чуть более сложное, чем в туториале, получается каша и разметка становится совершенно нечитаемой. Например, нужна полосатая таблица неизвестного заранее размера, каждую пятую строку надо выделить цветом, каждый третий столбец содержит сумму предыдущих. Или постройка нетривиального дерева в бутстрапе. С циклами это делается элементарно. Поставленная задача решаема просто, кроме "каждый третий столбец содержит сумму предыдущих" - так как тут можно понимать по-разному. Ну вот пример шаблонизации, о которой я говорю: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. И что тут такого запутанного или сложного? Обрати внимание, что в шаблоне я никак не указываю тип вообще. То есть, если туда попадёт массив - будет массив строк, если объект - одна строка, если false или пустой массив - пустая таблица (без строк). Итак, такой шаблон будет в себя включать 4 основных конструкции: 1. <template ['templateSource'] mainVar=var1 [v1=var2 ...] /> - загрузить подшаблон 2. {$obj->attr} - вставить значение атрибута объекта 3. {$var} - по сути $var - это тот же объект ViewObject, но с одним единственным атрибутом, который и будет вставлен 4. для первой конструкции !var1 - отрицание, для реализации вывода типа "или одно или другое". Такое не обязательно, но его присутствие добавит удобства. P.S. шаблонизацию посредством тэга, можно заменить на любую другую конструкцию (которая идэшкой будет выделяться определённым цветом, и будет более заметна в общей массе. Это так... пример на коленке :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2015, 13:19 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=67&tid=1461993]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 428ms |

| 0 / 0 |
