|
|
|
| Кто какой шаблонизатор юзает и удобен ли он в работе?
Вопрос авторам книги:
Почему не прикрутили простенький шаблонизатор к вашей cms для изучения основ? | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 10:45)
| | Самый хороший шаблонизатор, это PHP. Ведь он и задумывался как шаблонизатор для перла. А всё остальное - лишняя муть, тормозящая процессы и пожирающаа ресурсы. Это для ленивых. ИМХО. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 11:14)
| | как я понял вы не паритесь, что код идет вперемешку с html ?
А если дизайн придется менять, тогда как поступать? | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 11:34)
| | А где я написал, что нужно вперемешку? Я про то, что использовать всякие монстроподобные смарти и иже с ними - нонсенс. Мне вполне хватает возможностей php. Вот о такой конструкции что Вы скажете :
<?
include_once("header.html");
switch($_GET['page'])
{
case 1:
include_once("content1.html");
break;
case 2:
include_once("content2.html");
break;
default:
include_once("index.html");
}
include_once("footer.html");
|
а в шаблонах, не мудрствуя лукаво, так:
<a href="?page=<?php echo $page1 ?>" >Страница №1</a>
| И ни разу небыло проблем. Зато скорость на порядок выше, нежели парсить весь контент, да и проще это для верстальщиков. Не нужно изучать сурогатные языки шаблонизаторов... | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 12:21)
| | всякие монстроподобные смарти
Абсолютно с вами не согласен... Смарти сильный шаблонизатор при его грамотном использовании. Если страница достаточно статична, то шаблон транслируется в РНР код всего один раз, а затем берётся из кеша. Проще говоря вы пишите руками РНР код который лежит на вашем сервере и работает себе потихохоньку. Смарти делает то же самое (РНР код) один раз на основе шаблона. Заказчик просит вас что-то поменять в коде, вы на это убиваете пару-тройку дней, а смарти это делает за секунды и заказчик вообще к вам не обращается;)
Вся проблема сводится к тому, что надо грамотно научится работать со смарти. Ведь никто не удивляется что некорректное использование базы данных тормозит работу скрипта. | |
|
|
|
|
|
|
|
для: Valick
(28.12.2008 в 12:44)
| | Ну не знаю, если страница, как Вы пишите, достаточно статична, то тем более смысла большого нет её парсить и записывать в километровый кэш.
Однако хронометраж - штука объективная, и выступает совсем не в пользу такого подхода. Если рассуждать с точки зрения - сделал и трава не рости - тогда да. Я же написал, что для ленивых.
А что бы поменять что то в коде, совсем не нужно пару-тройку дней, если пользоваться своей библиотекой. К тому же мне ближе творческий подход, а шаблон он и в Африке шаблон. Повторюсь - это сугубо моё личное мнение, что то наверняка полезное можно извлечь и из смарти...
Что же касается силы смарти - большое сомнение. Разделить логику и представление там полностью не получилось... А зачастую хорошего дизайнера просто тошнит от любого проявления логики, на то он и творческая натура. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 12:21)
| | ну то што инклудите контент эт понятно, а что в файле content1.html уже сгенерированный хтмл находится? что то я непонимаю. Тема ведь интересная. Кто как сайты делает, подскажите, нехочется смарти изучать | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 14:18)
| | Обычный HTML там находится. А в тех местах, где нужно что то менять обычные php вставки. Просто получается всё наоборот. При использовании шаболонизатора обычно контент считывается в переменную, а затем вставки заменяются на нужные фрагменты. Чтоб было понятно, примерно так(очень упрощенно):
template1.html:
php
<?
$content = file_get_contents("template1.html");
$content = preg_replace("#%\[([^\]]+?)\]%#","<a href=?page=1 >Страница №1</a>",$content );
echo $content ;
| то есть содержимое файла тэмплэета записывается в переменную, обрабатывается и выдается результат. А если исползовать подключение, то php код будет сразу исполняться в нужном месте, что довольно серьёзно сокращает время работы приложения. Я обычно вывожу результат работы нужной функции, чтоб не засорять логикой html. Принцип на верху, остальное дело фантазии. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 14:38)
| | Зря Вы спорите. Если не помните, уже с Вами такое было, когда Вы спорили-спорили, но потом всё-таки поняли, что глубоко ошибались. С Вами такое же будет, но нужно время. | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 15:53)
| | Я ни с кем не спорю, спросили мнение, я своё высказал. Кроме того, я совсем не против шаблонизаторов, иногда это действильно оправдано. Но зачастую на сайт из 10-15 страниц вешают какой нибудь битрикс, который сам по себе весит ужос сколько, и бедный клиент, чтоб раз в три месяца изменить пару строк вынужден изучать это творение... Всё хорошо в меру. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 15:59)
| | Я понятия не имею что такое битрикс...Так не вешайте битрикс...
> Что же касается силы смарти - большое сомнение. Разделить логику и представление там полностью не получилось... А зачастую хорошего дизайнера просто тошнит от любого проявления логики, на то он и творческая натура.
Дизайнера не будет тошнить от Ваших "шаблонов"? Это же чистый PHP-код.
> бедный клиент, чтоб раз в три месяца изменить пару строк вынужден изучать это творение
Странная фраза. А Ваш клиент не будет изучать Ваше творение, чтобы изменить пару строк?
Не надо оправдывать свой способ. У Вас -- [Поправлено Дедом Морозом]. тчк | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 16:33)
| | Клиент вообще изучать ничего не должен. Зачем ему? Ему админка нужна, чем проще, тем лучше. В идеале на Word похожая. А вот дизайнера не будет тошнить, потому что его php вообще не касается. Весь HTML в отдельных фаилах. А вот это как прикажите понимать
{if $d.tpl == 'redirect.tpl'}
<meta http-equiv="refresh" content="5;url={$d.redirect}">
{elseif $d.tpl == 'room.tpl'}
| Это Ваш хвалёный смарти. Тут даже программиста затошнить может, не только дизайнера. Я не оправдываю свой способ, к тому же он совершенно не мой. Он не нуждается в оправдании, так как работает, и пока работает без проблем. Чего не могу сказать про смарти, кстати. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 16:44)
| | > Клиент вообще изучать ничего не должен. Зачем ему?
Тогда к чему Вы сказали это:
> бедный клиент, чтоб раз в три месяца изменить пару строк вынужден изучать это творение
?!
> Весь HTML в отдельных фаилах
Это как? Как у Вас будет выглядеть вывод динамического списка файлов, например?
> Он не нуждается в оправдании, так как работает, и пока работает без проблем
Мы не говорим о работе, потому что работают оба способа, мы говорим об удобстве дальнейшей поддержки проекта, внесения изменений. | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 18:58)
| | >Тогда к чему Вы сказали это:
Ну как зачем, а каким же образом он будет что то менять? Так или иначе придется изучать основы. Ведь это общая схема... А изучать там есть что, и довольно прилично. А если не нужно ничего менять, то вообще где смысл шаблонизации...
>Это как? Как у Вас будет выглядеть вывод динамического списка файлов, например?
Не уловил проблемы... Что конкретно имеется ввиду?
>Мы не говорим о работе, потому что работают оба способа, мы говорим об удобстве дальнейшей поддержки проекта, внесения изменений.
И здесь не вижу особой сложности. Почему не удобно то? Ведь суть то практически та же - разделение логики и представления. Подход другой - факт. А вот если допустим тот же дизайн придется менять кому то другому, ему же придется сначала разобрать логику шаблона, пусть и элементарную, но всё же логику. А по той схеме (повторюсь - не я это придумал), которую я описал, в шаблонах вообще логики нет. Чистый html. Если что то смущает, (а впринципе смущать не должно, это ведь тег, его не видно в браузере), можно сделать так:
<div class=news >
<!--?php echo news() ?-->Вот эти букафки для примера</div>
| и расскрашивать как душе угодно. Даже сервер дома для этого не надо иметь, не то что шаблонизатор... Конечно, если страниц очень очень много, наверное имеет смысл пожертвовать и скоростью и ресурсами, а на небольших сайтах это нонсенс. Это похоже на то, что на спортивный автомобиль поставили двигатель от белаза. Мощно, ничего не скажешь... А толку? | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 19:35)
| | > Ну как зачем, а каким же образом он будет что то менять? Так или иначе придется изучать основы
Ваши слова:
> Клиент вообще изучать ничего не должен. Зачем ему?
Остальное -- no comments. Пусть Аллах нас рассудит. :)))
> Это похоже на то, что на спортивный автомобиль поставили двигатель от белаза. Мощно, ничего не скажешь... А толку?
Так Вы со мной по поводу количества возможностей спорите, да? | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 20:07)
| | Я вообще ни с кем не спорю. Я факт констатирую. Парсить контент всегда дольше, чем подключать. Кроме того, не исключены всевозможные глюки, которые не зависят даже от Вашего кода, как бы идеально он не был написан. Ведь не секрет, что и php не лишен глюков, особенно в части классов. А то, что я написал и есть шаблонизатор, только простой как три копейки, от этого и привлекательный. А по поводу клиента с изменениями, наверное я неправильно выразился. Я имею ввиду, что клиенту вообще знать не обязательно, использует сайт смарти, битрикс или построен процедурно. Ему нужно поле, куда писать буквы и кнопка, которая изменит контент. И не нужно ему греть голову, как это устроено. А если нет такой возможности, то придется изучать основы, хоть на чём построен сайт. И шаблонизатор тут не поможет. А по поводу количества возможностей вообще спорить ни к чему... Ну зачем мне мильён возможностей, если для нормальной работы конкретного сайта не используется даже четверти из них? Зачем на хостинге весь этот ужос с кучей таблиц в бд, пачкой файлов и прочими прелестями, если это визитка на 10 страницах? | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 06:47)
| | Я факт констатирую. Парсить контент всегда дольше, чем подключать.
Какой факт, если вы апсолютно не понимаете что такое смарти? Это не просто система обработки шаблонов это язык написанный на РНР. Смарти по сути компилирует, (а не интерпритирует как обычный шаблонизатор) РНР код с заданными параметрами на основе шаблона и сохраняет его в кеше. В кеше будет лежать чистый!!! РНР код который и будет выполнятся с максимально возможной скоростью.
А вот ваш простой как три копейки шаблонизатор будет производить постоянно одни и те-же вычисления.
Поняв суть, вы можете добится того-же и у вас получится... смарти, только назовёте вы его по-другому. Существует много шаблонизаторов подобных смарти, а может даже и лучше, но ни вы ни я о них можем никогда не узнать, так как они платные (в отличии от смарти) и имеют свой синтаксис.
Год назад я "поломал" все коренные зубы об этот Смарти и понял что ещё не готов к его изучению (а точнее к грамотному использованию). | |
|
|
|
|
|
|
|
для: Valick
(29.12.2008 в 09:44)
| | Всё я прекрасно понимаю. Я не понимаю другого, зачем на языке php писать еще один какой то язык? Что бы поломать коренные зубы? Зачем мне сначала писать код на каком то непонятном языке, что бы посредством смарти, шмарти или другого шаблонизатора, компелировать его обратно в php и записывать в кэш. В php не с проста реализована возможность внедрения html, это и есть нормальная, человеческая шаблонизация. Что бы логику делать логикой, а вывод выводом. Ведь смарти - это надстройка, и всё равно приведёт к тому же результату. Ну так а на кой тогда оно надо? Не лучше ли потратить силы и время на изучение нормального языка, ведь Вы правильно написали, на смарти свет клином не сошелся, есть еще куча шаблонизаторов со своим синтаксисом и правилами. И все нужно изучить... Поломать то можно не только зубы, но и что по страшнее с дуру то... | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 09:59)
| | А вы знаете на чём в свою очередь написан сам РНР? И чем в конечном итоге является интерпретируемый РНР код?
Вобщем я думаю пора закрывать эту тему. Кому надо тот почитает и сделает выводы сам. | |
|
|
|
|
|
|
|
для: Valick
(29.12.2008 в 10:20)
| | Давайте закроем. На последок - так рассуждать - можно и на смарти написать какой нибудь язык, и так далее, до бесконечности. PHP задумывался, как шаблонизатор для перла, зачем еще дальше извращать идею? | |
|
|
|
|
|
|
|
для: Valick
(29.12.2008 в 10:20)
| | Не надо с Николаем спорить:) Пусть дальше факты констатирует. | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 16:33)
| | Побойтесь Деда Мороза, прошу вас перестаньте называть вещи своими именами, хотябы до Нового Года))) | |
|
|
|
|
|
|
|
для: Valick
(28.12.2008 в 18:01)
| | Злые вы... Вот оно - шаблонное мышление))))) | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 16:33)
| | чего ты накинулся на Николая, смарти смарти, да я з@#^&ь его изучать, а он предложил более менее понятный способ. В силе смарти я не сомневаюсь, но там много того чего мне не нужно. | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 19:48)
| | Я сам Smarty не пользуюсь. Мне все его возможности не нужны, поэтому я писал свой шаблонизатор. | |
|
|
|
|
|
|
|
для: BinLaden
(28.12.2008 в 20:00)
| | ну если написал свой, покажи, может он удобнее в работе окажется | |
|
|
|
|
|
|
|
для: technic611
(29.12.2008 в 06:13)
| | Нет, я тут типа шифруюсь. А вдруг меня кто узнает... | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 12:21)
| | можно подробнее, а то поверхносто как то показали ваш пример. >А где я написал, что нужно вперемешку? Я про то, что использовать всякие монстроподобные смарти и иже с ними - нонсенс. Мне вполне хватает возможностей php. Вот о такой конструкции что Вы скажете :
>
<?
>include_once("header.html");
>switch($_GET['page'])
>{
>case 1:
>include_once("content1.html");
>break;
>case 2:
>include_once("content2.html");
>break;
>default:
>include_once("index.html");
>}
>include_once("footer.html");
|
>а в шаблонах, не мудрствуя лукаво, так:
>
>
<a href="?page=<?php echo $page1 ?>" >Страница №1</a>
| И ни разу небыло проблем. Зато скорость на порядок выше, нежели парсить весь контент, да и проще это для верстальщиков. Не нужно изучать сурогатные языки шаблонизаторов...
можно подробнее, а то поверхносто как то показали ваш пример.
зачем нам подгружать обычный хтмл, если мне нужно например подгрузить новости (news.php) то в файле news.php получается php вставки вместе с html??? тогда в чем облегчение работы по изменению дизайна??? | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 15:17)
| | На а как подробнее, это ведь зависит от конкретных условий... Вот новости откуда Ваши берутся? Предположу, что из БД. Тогда это может выглядеть так:
<?
//Подключаем хидер, он обычно один для всех страниц,
include_once("header.html");
//Выбираем нужную страницу
switch($_GET['page'])
{
case 1:
//Подключаем нужный обработчик
include_once("news.php");
//Подключаем нужный шаблон
include_once("content.html");
//Далее по тексту
}
//Подключаем футер
include_once("footer.html");
|
файл news.php
<?
function news()
{
$res = mysql_query("SELECT `text` FROM `news` WHERE...........");
$news = mysql_result($res,0,0);
return $news;
}
|
файл content.html
<div class="content"><?php echo news() ?></div>
|
ну и так далее. Таким образом отделяются мухи от котлет и Вы можете спокойно менять дизайн, не задумываясь о логической составляющей. Кстати, всатвки php совершенно не влияют на html, файлы можно просто открывать в браузере и править. Я для удобства верстальщика делаю отдельный обработчик, который просто собирает шаблоны в кучу, без логики.То есть работать можно параллельно. | |
|
|
|
|
|
|
|
для: Николай2357
(28.12.2008 в 15:42)
| | все намного проще, чем я думал. Буду юзать так. Все же хотелось бы услышать еще мнения по поводу шаблонизаторов, нужны они или это лишняя головная боль???? | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 10:45)
| | Даже не знаю как назвывается что я использую, но мне нравится. Довольно удобно.
отдельный файл с классом (инклюд делаю в каждой странице)
class parse_class
{
var $vars = array();
var $template;
function get_tpl($tpl_name)
{
if(empty($tpl_name) || !file_exists($tpl_name))
{
return false;
}
else
{
$this->template = file_get_contents($tpl_name);
}
}
function set_tpl($key,$var)
{
$this->vars[$key] = $var;
}
function tpl_parse()
{
foreach($this->vars as $find => $replace)
{
$this->template = str_replace($find, $replace, $this->template);
}
}
}
$parse = new parse_class;
|
Ну и собственно код глобальных переменных (это я для себя так решил :))
$parse->get_tpl('template/template.tpl'); //Файл который мы будем парсить
$parse->set_tpl('{title}',''.$zagolovoksite.''); //Установка переменной {title}
$parse->set_tpl('{content}',''.$content.'');//вывод контента
//$parse->set_tpl('{calendar}',''.$calendar.'');// календарик
$parse->tpl_parse(); //Парсим
print $parse->template; //Выводим нашу страничку
|
Расскажите про php шаблонизатор. | |
|
|
|
|
|
|
|
для: MikeSVB
(28.12.2008 в 11:36)
| | Вот читаю пост и дискуссию к нему...Сколько людей столько мнений мое мнение код должен быть как автомат Калашникова...чем проще тем надежнее.....Пусть верстальщик верстает а уж программер спокойно вставит вывод туда куда надо,ну разве что со стилями поиграется...а дополнительно чтото инклюдить или заставлять чтото лишнее парсить это извращение...,а давайте себе честно признаемся так ли часто мы меняем шаблоны??? этоже не трусики неделька....а если писать движок для всех.. то оставьте пользователю хоть маленькую возможность напрячь мозг ...для его же блага...ну хоть немного творчества....
P.S недавно прочитал на каком то рессурсе интересную фразу...
Жизнь как туалетная бумага: кажется, что длинная, а тратишь на всякое гавно.
Да уж.... С наступающим Всех !!!! | |
|
|
|
|
|
|
|
для: serjinio
(29.12.2008 в 00:20)
| | без инкуда ну никак не получится или вы предлагаете делать десять пятнадцать страниц???
Подход должен быть таким
http://site.ru/index.php?cat=news или index.php?cat=article
а не таким http://site.ru/news.php или http://site.ru/article.php
все инклудится на главную страницу, суть в том чтобы иметь шаблон этой главной страницы и вместо контента выводить что угодно будь то новости или статьи | |
|
|
|
|
|
|
|
для: technic611
(29.12.2008 в 06:22)
| | Инклюдить надо блоками...блок меню ,блок новостей,блок футер ...и ттд... кстати не всегда верен подход когда надо все подключать на главной странице ...дело в том что дизайн главной и других может совершенно быть отличным друг от друга ..я имею ввиду структуру ...макет.. ну например ...магазин.где есть морда ,категории товаров,разделы по товарам,и описание товара ,ну и вход покупки товара то структура будет (используя ЧПУ) типа.
.http://site.ru/(морда),
http://site.ru/раздел1/
http://site.ru/раздел1/категория 7/
http://site.ru/раздел1/категория 7/товар 123
ну типа такого....притом ..допустим морда будет иметь 3-х колоночный макет,а все остальное 2-х колоночный макет....у одного макета верстка ..контент между колонками у другого контент слева...как в таком случае все подключать на морде?...ни как... | |
|
|
|
|
|
|
|
для: serjinio
(29.12.2008 в 10:11)
| | >не всегда верен подход когда надо все подключать на главной странице ...
А почему на главной странице... Никаких проблем разделить и на блоки. И ЧПУ совершенно не мешает. Просто используется что то типа диспетчера, который определяет что и когда подключить, а главная получится на выходе страница или второстепенная - решать Вам. Суть вопроса в том, что есть набор шаблонов, написанных на HTM, и в способах отдачи их клиенту. И макеты можно использовать хоть трёхколоночный, хоть кверхногами, хоть все вместе. Почему это никак?
<?
switch($_GET['page'])
{
case "морда":
include_once("header1.html");
break;
case "раздел1":
include_once("header2.html");
break;
|
| |
|
|
|
|
|
|
|
для: serjinio
(29.12.2008 в 10:11)
| | полностью солгасен с тобой, но сейчас речь как раз о такой структуре, когда все выводится на главной странице, т.е. слева и справа не меняющая информация типа календарь, поиск, авторизация и так далее, а в центре меняющийся контент | |
|
|
|
|
|
|
|
для: serjinio
(29.12.2008 в 00:20)
| | Большинство высказавшихся как-то обошли вниманием тот факт (а скорее просто не знают о его существовании), что над разработкой проекта может работать больше одного человека, а сам проект может состоять более чем из трех страниц. А стоимость времени дополнительного программиста легко перекроет стоимость еще одного-двух дополнительных серверов. Да плевать - пусть парсится сколько захочет. Главное чтобы разработка продвигалась быстро. | |
|
|
|
|
|
|
|
для: Loki
(29.12.2008 в 11:02)
| | Loki ты ведь писал свой шаблонизатор, есть какая нибудь документация по нему? | |
|
|
|
|
|
|
|
для: technic611
(29.12.2008 в 11:17)
| | Нет. Забросил его на начальном этапе. Попробовал пассивные шаблонизаторы, но в итоге остановился на смарти: его все знают, он неплохо документирован, он модульный, компилируемый и со сравнительно неплохой системой кэширования. Так что при грамотном использовании - очень даже... Правда память любит, но это мизерная плата за скорость разработки и сопровождения. | |
|
|
|
|
|
|
|
для: Loki
(29.12.2008 в 11:02)
| | >что над разработкой проекта может работать больше одного человека, а сам проект может состоять более чем из трех страниц.
И вовсе нет. Я же согласился, что при разработке какого нибудь мегапортала использование шаблонизаторов скорее всего оправдано... Если это не устоявшийся коллектив со своими наработками и фреймворками. Как к примеру гостепреимный хозяин сего форума. (Вот интересно узнать, как часто использует в работе смарти студия softtime. )
НО. Посмотрите на темы, поднимаемые здесь. Их можно пересчитать по пальцам - регистрация, загрузка файлов, вывод новостей, ну еще с десяток основных. Если есть своя, отработанная и проверенная библиотека, обычный рядовой сайт, коих в большинстве на заказах, можно собрать как конструктор весьма и весьма быстро. А про обслуживание и говорить не стоит. Если темплэйт не содержит логики, и вообще не содержит никакой смартовской специфики, то с его правкой справится любой школьник, не говоря о профессиональном верстальщике. Ровно как и изменение логической составляющей. А дописать пару специальных модулей, которые сделают сайт индивидуальным - святое дело. К тому же они пригодятся в будущем. И не дело это, за счет клиента или юзера в конце итога, выгадывать себе лёгкую жизнь. Последнее время заказчики (по крайней мере у меня) не последнюю роль отводят быстродействию. И, кстати, унификации.
А разбирать чужой код - я разницы не вижу. В смарти он написан или на php. Просто спецов по php (по крайней мере в моём окружении) гораздо больше, чем в смарти. Не говоря про собственный синтаксис. Так что действительно, Benladen прав, не надо со мной спорить, я факты констатирую, а не досужие рассуждения. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 13:02)
| | >не надо со мной спорить, я факты констатирую
По тому как обтекаема Ваша аргументация, за километр видно что Вы рассуждаете о том, чего не знаете. В лучшем случае - знаете с чужих слов. В силу этого спорить я с Вами, конечно же, не стану. И Вам не советую, так как выглядит это, мягко говоря, несолидно. | |
|
|
|
|
|
|
|
для: Loki
(29.12.2008 в 13:55)
| | Я разумеется из природного любопытства пытался заюзать смарти и найти в ней те плюсы, о которых так много говорят. По этому зря Вы думаете, что я не знаю предмета. Но и противников этого подхода вполне достаточно. Так что о солидности рассуждений - вопрос спорный. Собственно как и о самом предмете. От того и такая дискуссия. Одно то, что для обсуждения проблем смарти создано и процветает куча форумов, уже наводит на грустные мысли. Если хотите конкретики - почитайте там, здесь форум php, по этому и формулировки достаточно обтекаемы. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 14:32)
| | Вы тоже "почитайте там"... Убедились, что Вы не правы? Почитали там? Вот на этом и закончим.
:) | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 15:02)
| | Я убедился, что прав давно, когда мне пришлось полностью переписать на процедуру один сайт, котрый был написан (правда не на смарти, на битриксе, но сути не меняет) так, что это оказалось гораздо проще, чем разобрать то, что там наворотили до меня. А верстальщик вообще наотрез отказался иметь с этим дело. Мне не хочется повторять сей подвиг Гастело, будь код c применением смарти, битрикса, CodeIgniter'a или других сурогатов. Я ни в коем разе не призываю отказаться от шаблонизаторов - это личное дело каждого. Если человеку больше по нутру пользоваться готовыми приложениями - ради Бога. Можно вообще приобрести генератор и штамповать сайты по 30 штук за ночь. Спросили мнение о шаблонизаторах - я высказал своё, наболевшее. И отдельное спасибо за то, что меня в этом мнении утвердили. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 15:26)
| | >...CodeIgniter'a или других сурогатов...
CodeIgniter тут причём? | |
|
|
|
|
|
|
|
для: Root
(29.12.2008 в 15:39)
| | При том, что это фреймворк. Со своими правилами и синтаксисом. И таких много. Жизни не хватит все изучить досконально. А вопрос в ООП. Если сайт написан на какой то надстройке, волей неволей приходится это изучать. Мне это очень не нравится. Вот я об этом и говорил. А если работаешь в команде, которая использует что то конкретное, о унификации и речи быть не может. Вот господину Benladen'у как всегда повезло ))) и он не сталкивался с битриксом. По этому и ратует за шаблонизаторы. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 16:30)
| | Там свои правила и даже синтаксис! Ого! Правда чтоли?
Какой же там свой синтаксис? Или методы классов Вы называете "свой синтаксис"?
>Если сайт написан на какой то надстройке, волей неволей приходится это изучать.
Ну напишите вы сами (уже к примеру реализованные в CI) валидаторы, кеширование и т.д.
А кому-то прийдется потом "изучать" Ваше творение. В чём разница не вижу? | |
|
|
|
|
|
|
|
для: Root
(29.12.2008 в 17:00)
| | синтаксис Вы хотите сказать, что там нет правил? А это для кого написали? У меня дома есть перевод всей документации, могу поделиться кстати. Ну нравится Вам, пользуйтесь на здоровье. Мне не нравится, я не буду. Изучать правда приходится, и именно по тому, что Вам нравится это, господину Valick'у смарти а кому то ещё что то ещё. Но когда приходится разбирать то, что сделано на не совсем знакомом приложении, уходит гораздо больше времени, чем на написание собственного кода. По мне так гораздо проще ориентироваться в нескольких, логично подключенных процедурных файлах, нежели разгребать миллион классов, хэлперов и прочей лабуды, которую написали для экономии времени. И не нужно никакого кэширования, валидаторов и другого геморроя. Всё и без того чудесно работает, быстро и надежно. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 17:44)
| | Искренне удивляюсь что Вы вообще в PHP забыли? С Вашим подходом к программированию, все что абстрактнее ассемблера должно с гневом отметаться.
PS. Кстати, интересно как изменится Ваша аргументация, если смарти выпустят расширением для php?
PPS
-- Долетался, желтоглазый, -- бормотала бабушка,
имени-фамилии которой никто не знал. Жила она на антресолях,
над кухней, и хотя вся квартира освещалась электричеством,
бабушка жгла у себя наверху керосиновую лампу с рефлектором.
Электричеству она не доверяла.
Ильф и Петров. "Золотой теленок" | |
|
|
|
|
|
|
|
для: Loki
(29.12.2008 в 17:51)
| | PHP на сегодняшний день - наверное лучший серверный язык. Это не только моё мнение. Но и на старуху бывает проруха. В погоне за облегчением жизни, разработчики всевозможных надстроек и сами не заметили, как её усложнили. Написать собственное приложение, шаблонизатор или фреймворк по большому счёту не так уж сложно для специалиста, а тем более группы. И Вы правильно заметили, что потом кому то приходится эти творения разгребать. А так как их количество растет как грибы после дождя, это становится просто невыносимым.
Аргументация моя не изменится, я просто расстроюсь еще больше. Вы просто уже не видите, что можно делать всё без геморроя, без ЧПУ кстати, тоже та еще штучка, без классов, которые суются куда ни поподя, оправдано применение или нет, без парсенья (вот даже не знаю как правильно пишется) шаблонов, без кэширования, с которым при нормальном подходе вполне справляются браузеры и т.д. Абстракции хороши у художников (и у писателей, тогда они про бабушек хорошо пишут))), а у программистов должна быть чёткая логика. Прозрачная и понятная. Чего как раз всем этим облегчителям явно не хватает. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 18:14)
| | Ой как Вы красиво говорите о том, чего не знаете. :) Жгите исчо! | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 18:33)
| | А чего я не знаю то? Как в шаблон напихать своего синтаксиса, распотрошитьего и зписать в базу, или куда вы там пишите готовую страницу? Или про то, как наинклюдить полмиллиона файлов, не известно в которых находится нужный класс? Или про кэш, который мне в опере приходится отключать на время работы, потому что он даже мешает? Или про ЧПУ, пользы от которого кроме удобства рассказать ссылку по телефону практически никакой?
Или про что я не знаю? Вот ясных и чётких аргументов в защиту шаблонизаторов я пока не услышал - этого действительно не знаю. И вряд ли узнаю теперь... Потому что подозреваю, что их просто нет. Кроме одного - куда Маша, туда я. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 18:51)
| | > Как в шаблон напихать своего синтаксиса, распотрошитьего и зписать в базу, или куда вы там пишите готовую страницу?
В файл, в файл:)
> Или про то, как наинклюдить полмиллиона файлов, не известно в которых находится нужный класс?
Один, один файл:)
> Или про кэш, который мне в опере приходится отключать на время работы, потому что он даже мешает?
А при чём тут Ваша Opera и сервер?
Вот видите. Вы столько глупых вопросов за один пост успели задать. Значит Вы "не в теме", а так громко кричите. :)
Ладно, уберу мат. Авось модератор не будет злиться:) | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 18:55)
| | Я вообще кричать не умею... А куда Вы пишите страницы действительно не знаю, мало ли... Вы же смарти не юзаете, у Вас свой шаблонизатор. И речь шла кстати, совсем не про него, а про фреймворки. И то, что зачастую очень сложно разобраться, где какой класс находится, благо файл у Вас один, с чем и поздравляю... А кэшировать на сервере то, что и без того кэшируется в браузере - зачем? Вот Вы сами не вникли, а меня глупостью попрекаете. Я голословным быть не хочу, вот это (правда не доделано пока) по моей схеме работает, используется только один класс и никакого там шаблонизатора. На 12 файлах php и 9 html.зато любому школьнику понятно, как это работает. И никаких бабушек с электричеством. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 19:14)
| | >А кэшировать на сервере то, что и без того кэшируется в браузере - зачем?
Весело :-) | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 19:14)
| | Потому что мы кешируем шаблон, а не страницу. Вы же тут как аргумент "против" несколько раз приводили "постоянно что-то парсить". Так вот не надо ничего парсить -- это делается один раз. Потом шаблон берется из кеша, где как раз такой же PHP-код.
А Вас я поздравляю с работающим сайтом. Только одной только "работой" Вы далеко не уедете. Так и будете делать сайты, которые только школьникам и понятны. | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 19:21)
| | Да я то прекрасно понимаю, откуда что берется. Вы можете кэшировать всё что угодно, вопрос - оправдано ли это на таком простеньком сайте, как я Вам показал. Я могу сделать и непонятный сайт, тлько для чего? Чтоб меня потом материли на чём свет стоит те, кому придется это разгребать? А таких я могу ещё кучу показать, дело не в этом. Конечно, "одноклассников" я не делал, может на таком проекте и пришлось бы вооружиться чем то. Но большинство заказав не выходят за эти рамки. Надо ли везде пихать то, без чего и так чудесно, быстро и просто работает?
PS и к стати я теперь понял, почему Вы меня не понимаете про кэш. По моей схеме не нужно ничего кэшировать на сервере, вообще не нужно. Там есть готовый, обычный статичный html файл, который прекрасно кэшируется браузером, а меняется только содержание - букафки и циферки. Которые выводятся в зависимости от работы приложения. Зачем мне делать какой то шаблон, разбирать его, обрабатывать, лепить из него смесь html и php если можно просто, в готовый, сверстанный файл, который так же легко правится, как и верстается, поставить обсолютно прозрачный вывод. Ведь не нужно быть семи пядей во лбу, чтоб понять, что
это ссылка на первую страницу... Так вот чей подход прозрачней и унифицированней - вопрос на засыпку. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 19:29)
| | > Да я то прекрасно понимаю, откуда что берется
Читая каждый Ваш новый пост я в этом всё больше сомневаюсь :( | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 18:51)
| | >А чего я не знаю то? Как в шаблон напихать своего синтаксиса, распотрошитьего и зписать в базу, или куда вы там пишите готовую страницу? Или про то, как наинклюдить полмиллиона файлов, не известно в которых находится нужный класс? Или про кэш, который мне в опере приходится отключать на время работы, потому что он даже мешает? Или про ЧПУ, пользы от которого кроме удобства рассказать ссылку по телефону практически никакой?
>Или про что я не знаю? Вот ясных и чётких аргументов в защиту шаблонизаторов я пока не услышал - этого действительно не знаю. И вряд ли узнаю теперь... Потому что подозреваю, что их просто нет. Кроме одного - куда Маша, туда я.
+100 шаблонизатор как я понял это модно, вот и используют, и еще было что то про кеширование. Какие плюсы есть еще? Прочитав перую книгу разработчиков этого форума было все понятно, но как только вышла вторая с применением классов невозможно стало ее читать. Настолько все сложно и непонятно, а результат тот же.
BinLaden ты хоть что нибудь предложи, а то флудишь только. | |
|
|
|
|
|
|
|
для: technic611
(29.12.2008 в 19:08)
| | Вы почитайте, что писал Loki о времени программиста и разработки. Тут Вам ответ на всё. | |
|
|
|
|
|
|
|
для: Root
(29.12.2008 в 19:13)
| | А Вы почитайте мой ответ. Разработать быстро - это хорошо, но надо и о тех подумать, кому потом обслуживать придется. Совсем не обязательно это будет один человек. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 19:17)
| | Так вот о чём и речь. Неужели Вы думаете, что Ваш подход будет многим по душе? | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 19:17)
| | Ко мне частенько обращаются различные клиенты с просьбой каких-то доделок на сайтах, контакты с первоначальными разработчиками которых уже разорваны. Когда сайт грамотно спроектирован и написан, проблем это не вызывает - клиненту это обходится в минимальные деньги, а то и вовсе "за спасибо". Когда же приносят творение типа Вашего, то клиенту это часто обходится в половину разработки нового, так как приходится всю это помойку разобрать и понять что откуда растет. Ну либо задешево, но без всяких гарантий. Думаю, Вас бы позабавило какими словами клиенты в этих случаях называют первоначальных разработчиков:)
Вы делаете вид что не понимаете основного критерия оценки качества. Этот критерий - стоимость разработки и эксплуатации. А на правильность/неправильность реализации всем плевать. И в первую очередь заказчику. | |
|
|
|
|
|
|
|
для: Loki
(29.12.2008 в 20:20)
| | Вы моими же словами. ))) Если Вам конечно интересней разгребать кучу скомпелированных шаблонов, нежели пару строчек процедурного кода - я снимаю шляпу. Только и я частенько слышу от заказчиков подобные речи, когда натыкано непродумавши чего попало, лишь бы было. Ведь из готового слепить - чего париться. Тяп-ляп - фреймворк всё сделает. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 20:32)
| | Никто скомпилированные шаблоны не трогает. Они вообще в отдельной папочке лежат.
> Только и я частенько слышу от заказчиков подобные речи
Много у Вас заказчиков было? | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 20:36)
| | >Много у Вас заказчиков было?
Разумеется гораздо меньше чем у Вас, если Вы это хотите услышать. Но и того, что есть, мне хватило, чтоб разочароваться в таком подходе. Вы попробуйте поковырять то, что сделано непонятно кем, непонятно когда и непонятно как. Не ужели Вам доставляет удовольствие возиться с этим?
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><?=$FORM->ShowFormHeader();?><?if($FORM->SHOW_INCLUDE_AREAS){?><script language="javascript">function EditFormTpl(){window.location="/bitrix/admin/form_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?=$FORM->WEB_FORM_ID?>&tabControl_active_tab=edit5&back_url=<?=urlencode($_SERVER["REQUEST_URI"])?>";}</script><?}?><?=$FORM->ShowFormDescription("")?> <?=$FORM->ShowFormErrors()?><?=$FORM->ShowFormNote()?>
|
| |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 21:01)
| | Скажите, а какое отношение этот кусок имеет к моему подходу? | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 21:08)
| | Это имеет отношение к тому, что довольно не просто разобрать подобные вещи, а они как раз и пишуться на фреймворках. Я понятия не имею, какой у Вас шаблонизатор и как он работает. Весьма вероятно, что это что то гениальное. Я про построение кода, когда всё вперемешку. Ведь это тоже шаблон. | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 21:12)
| | Нет, это то, что предлагаете как раз Вы, если не ошибаюсь. Это же чистый PHP.
Шаблон для того же Smarty выглядит, например, так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>{$title_text}</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body> {* This is a little comment that won't be visible in the HTML source *}
<p>{$body_text}</p>
</body><!-- this is a little comment that will be seen in the HTML source -->
</html>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 21:17)
| | И в чем грандиозное отличие? (Я, кстати выше приводил пример смартовского шаблона.) Я в своeй схеме вообще не использую логику, и непонятный синтаксис тоже. Чем допустим это:
отличается от этого:
<div class="menu" > Тыры пыры </div>
| Тот же тег, ничего страшного для верстальщика нет. А вот Ваше
{* This is a little comment that won't be visible in the HTML source *}
| надо еще разобрать, что обозначает. Кроме того, как прикажете что то изменить в шаблоне, если смарти (не только смарти) под рукой нету? | |
|
|
|
|
|
|
|
для: Николай2357
(29.12.2008 в 21:27)
| | Блокнотом изменить.
В общем, я выхожу из этой милой дискуссии. | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 21:36)
| | И посмотреть тоже в блокноте. Да, пора завязывать. | |
|
|
|
|
|
|
|
для: technic611
(29.12.2008 в 19:08)
| | > BinLaden ты хоть что нибудь предложи, а то флудишь только
Я предложу Вам выпить яду:) | |
|
|
|
|
|
|
|
для: BinLaden
(29.12.2008 в 19:22)
| | Ну вот началось предновогоднее виртуальное мордобитее.....как это типо горячие эстонские парни...ладно словоблудия много ..давайте конкретно...насчет ЧПУ...оно не для того чтобы по телефону говорить и не для того чтобы легко запомнить..оно для того что мы привыкли в своей повседневной жизни...к порядку...мы знаем что трусы носим ..знаете где ,а чашки находятся на кухне ,а не в туалете...мы привыкли,что даже на диске все разложено по полочкам...это не потому что красиво ,а потому что практично ...и мы с минимальным затратом времени можем найти нужную нам, на данном этапе, вещь....время..вот что самое главное в нашей жизни его не остановить.. не купить...поэтому мы даже подсознательно стремимся к порядку ..к упрощению многих вещей...чтоб не тратить на это свое невосполнимое время жизни....можно спорить до бесконечности,брызгая слюной и переходя на личности...но результат будет один ..каждый идет своей дорогой в этом мире со своими взглядами ,опытом и мировозрениями... человек не в состоянии все знать и быть спецом во всех областях....каждый до цели пройдет свой путь ..и те взгляды на проблему сегодня..завтра изменятся ,может быть кардинально...потому ,что за вечер человек получит новые знания и преобретет новый опыт ...догмы устаревают...умный смысл спора состоит в аргументировании по конкретному вопросу,объяснение своих позиций,описание беспрестрастно плюсов и минусов (с его точки зрения ).и нахождения компромисного решения...
Будьте мудрее и терпимее...
Да че-то отвлекся...насчет ЧПу .что лучше делать разбор урла в скрипте или в .htaccess. | |
|
|
|
|
|
|
|
для: serjinio
(30.12.2008 в 00:41)
| | вот вот. В поддержку предновогоднего виртуального мордобоя.
Порядок, это когда каталоги в пути на своем месте, имя скрипта - на своем , параметры тоже на своем.
А ЧПУ есть не что иное как форменный бардак в угоду интуитивному (и совершенно алогичному) человечьему восприятию.
Так что Вы либо крестик снимите, либо трусы наденьте что ли.... | |
|
|
|
|
|
|
|
для: serjinio
(30.12.2008 в 00:41)
| | >что лучше делать разбор урла в скрипте или в .htaccess
Разбор урла лучше делать там, где и положено его делать - в адресной строке. ))) И не обижайте Benladen'a, это не он против ЧПУ высказался, а я. Потому что кроме геморроя от него ничего не вижу. А юзер тем более. Подавляющее большинство пользователей совершенно не интересует, что находится дальше .ru к примеру. Ну а коль Вы решили призвать общественность к "порядку", начните с Гугла, посоветуйте поработать над .htaccess Яндексу ну или этому форуму... | |
|
|
|
|
|
|
|
для: Николай2357
(30.12.2008 в 07:28)
| | С .htaccess есть только два (приемлемых) варианта....
1 все взвалить на плечи апача (по переписыванию Урлов) типа..
# Для разделов
RewriteRule ^([a-zA-Z0-9\-]+)/?$ news.php?section=$1 [QSA,L]
RewriteRule ^([a-zA-Z0-9\-]+)/([0-9]+)\.html?$ news.php?section=$1&page=$2 [QSA,L]
# Для разделов и категорий
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ news.php?section=$1&category=$2 [QSA,L]
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([0-9]+)\.html?$ news.php?section=$1&category=$2&page=$3 [QSA,L]
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)\.html?$ artisle.php?section=$1&category=$2&articles=$3 [QSA,L]
и т.д и т.п
|
2 перекидывать все на главную и в ней делать разбор $_SERVER['REQUEST_URI'] скриптом в цикле ,и согласно результату разбора селективно подключать модули и шаблоны...
RewriteRule ^(.*)$ index.php [L,QSA]
|
Так какой из вариантов наиболее приемлемый и почему....
Вариант про 404 не рассматривать т.к логи ошибок будут забиты до отказа... | |
|
|
|
|
|
|
|
для: serjinio
(30.12.2008 в 10:00)
| | Повторюсь, что считаю это совершенно излишней процедурой, как и шаблонизацию в общепринятом понимании, но если этого требует заказчик, я предпочитаю реврвйт. Мне кажется это несколько проще и прозрачнее, чем юзать регулярки в скрипте... Хотя сути практически не меняет. | |
|
|
|
|
|
|
|
для: serjinio
(30.12.2008 в 00:41)
| | >что лучше делать разбор урла в скрипте или в .htaccess.
Разбор в скрипте имеет большую гибкость. Разбор апачем, в теории, должен выигрывать в скорости. | |
|
|
|
|
|
|
|
для: technic611
(28.12.2008 в 10:45)
| | >Кто какой шаблонизатор юзает и удобен ли он в работе?
XTemplate взял за основу доработал под свои нужды, сделал кэширование-очень доволен
>Вопрос авторам книги:
>Почему не прикрутили простенький шаблонизатор к вашей cms для изучения основ?
Именно поэтому и не прикрутили, чтобы вы сами научились. Если дать все готовое, то какой в этом смысл? | |
|
|
|
|
|
|
|
для: mihdan
(29.12.2008 в 11:29)
| | >>Вопрос авторам книги:
>>Почему не прикрутили простенький шаблонизатор к вашей cms для изучения основ?
>Именно поэтому и не прикрутили, чтобы вы сами научились. Если дать все готовое, то какой в этом смысл?
да хочется услышать их мнение, я не просто от балды задал такой вопрос, в книге по практике этого не было, а появилось позже и описывается в кратце смарти.
>>Кто какой шаблонизатор юзает и удобен ли он в работе?
>XTemplate взял за основу доработал под свои нужды, сделал кэширование-очень доволен
>
XTemplate действительно проще, но уж лучше все таки использовать способ, как Николай предложил. | |
|
|
|
|
|
|
|
для: mihdan
(29.12.2008 в 11:29)
| | >>Кто какой шаблонизатор юзает и удобен ли он в работе?
>XTemplate взял за основу доработал под свои нужды, сделал кэширование-очень доволен
XTemplate не поддерживает кеширование? | |
|
|
|
|
|
|
|
для: technic611
(30.12.2008 в 05:16)
| | Хтелось бы побольше примеров от спецов. Плиз, кому не лень поделитесь полезными статьями и относительно шустренькими шаблонизаторами.
И есть вопрос, как мне узнать что мои скрипты в случае если использую вариант Николая уже безнадёжно тормозят (ну мало ли :) сделаю чего такого нужного) и пора переходить на кэширование на сервере? | |
|
|
|
|
|
|
|
для: MikeSVB
(14.04.2009 в 08:40)
| | Право смешно... Причем тут вообще кэширование, речь вообще была про принципы шаблонизации. Кэшируйте на здоровье, одно другому не помеха. Ну на кой изобретать велосипед, сочинять новый суррогатный язык, заменяя одно другим, чтоб потом поменять обратно. Вот вам с самое простое кэширование, коль приспичило:
<?
ob_start()
include_once("header.html");
switch($_GET['page'])
{
case 1:
include_once("content1.html");
break;
case 2:
include_once("content2.html");
break;
default:
include_once("index.html");
}
include_once("footer.html");
$cache = = ob_get_contents();
ob_end_clean();
# И суйте $cache куда угодно, вот и весь кэш.
| К чему заменять перед этим шило на мыло, я не понимаю. А узнать разницу можно просто. В начале скрипта ставите
а в конце
<?
echo microtime(1) - $a , ' микросекунд';
|
| |
|
|
|
|
|
|
|
для: MikeSVB
(14.04.2009 в 08:40)
| | Вариант Николая скорее наоборот, чуть быстрее, но гораздо хуже в плане дальнейшей поддержки проекта.
Чаще всего все проблемы оптимзации связаны с субд. | |
|
|
|
|
|
|
|
для: Лерк
(14.04.2009 в 14:29)
| | >Вариант Николая скорее наоборот, чуть быстрее, но гораздо хуже в плане дальнейшей поддержки проекта.
Любопытно... Это почему же так? По мне так гораздо удобнее, когда все файлы занимаются своим прямым делом, а не перелопачивают смесь бульдога с носорогом. Вот шаблонизаторы в общепринятом их понимании это примерно как еще один компьютер между Вами и Вашим компьютером. Вы сначала должны запрограммировать его, что бы писать на нем свою абракадабру, а он должен это всё разбирать и в главный компьютер передавать. Причем если полная аналогия, то не просто передавать, а тыкать по клавиатуре. И где же здесь удобство? Правда не хочется всё сначала... | |
|
|
|
|
|
|
|
для: Николай2357
(14.04.2009 в 15:09)
| | Я спорить с Вами не стану. Судя по ветке это не имеет смысла. | |
|
|
|
|
|
|
|
для: Лерк
(14.04.2009 в 15:35)
| | Спорить со мной не нужно. Тем более, если Вы видите смысл только в том, что бы обратить меня в свою веру. Я никого не заставляю делать как я, но однозначные вердикты плана
> гораздо хуже в плане дальнейшей поддержки проекта.
оставьте при себе пожалуйста. | |
|
|
|
|
|
|
|
для: Николай2357
(14.04.2009 в 15:09)
| | >>Вариант Николая скорее наоборот, чуть быстрее, но гораздо хуже в плане дальнейшей поддержки проекта.
>... По мне так гораздо удобнее...
Чувствуется, что Вы не работали в большом проекте, который продолжается годами и делается поколениями программистов и при этом стабильно работает. Новый программист, приходя на смену старому, понимает логику огромного проекта за несколько дней. Потому что весь дизайн вынесен в шаблоны, а вся бизнес-логика в коды, а ЦМС устанавливает связь между тем и другим и базой. (это так, упрощенно) | |
|
|
|
|
|
|
|
для: GeorgeIV
(15.04.2009 в 11:18)
| | Удивительное дело. Как люди умеют навешать ярлыков, совершенно не разобравшись в сути происходящего. Для тех, кто до сих пор ничего не понял, объясняю в последний раз.
Вот файл index.php
<?
include('templates/header.html');
$page = isset($_GET['page'])?$_GET['page']:NULL;
switch($page)
{
case 'second':
include('modules/second.php');
include('templates/second.html');
break;
default:
include('modules/main.php');
include('templates/main.html');
}
include('templates/footer.html');
|
Вот к примеру modules/main.php
<?
$content = 'Я - контент главной страницы';
|
Вот main.html
<!-- tenplates/main.html begin -->
<div class="content"><?php echo $content ?></div>
<!-- tenplates/main.html end -->
|
Вот пришел на проект новый программист. Если ему нужно подправить что то на главной странице, он открывает индекс и смотрит, какие php файлы производят необходимые вычисления. И всё. открывай - правь. Никакого html, а уж тем более Вашей абры кадабры там нет. Всё ясно и прозрачно.
Ровно как и приходит новый верстальщик.
Открывает в браузере исходник и видит в каком файле находится нужный ему фрагмент. И не лезет больше никуда.
Не нужно изучать всякую ересь, состоящую из никому не нужных суррогатных операторов и подмены переменных. Не нужно учить СМАРТИ или чего другого, чего там напридумали.
Так вот такую логику нормальный программист поймет не за несколько дней, а за час.
>Не дай бог на эту ветку придет новичёк.
Их то и жалко, задурманили голову чем попало. Потому что проще так:
>Уважаемяя администрация форума, очень прошу промодерировать эту ветку, а лучше вообще удалить.
чем разобраться и вникнуть.
А впрочем делайте как знаете, было время когда 70 лет 250 миллионов считали, что коммунизм это хорошо. Именно потому, что так считает большинство. Можете удалять, запрещать или байкотировать, мне глубоко побоку. Мне с Вами не по пути. | |
|
|
|
|
|
|
|
для: Николай2357
(15.04.2009 в 12:44)
| | Не нужно изучать всякую ересь, состоящую из никому не нужных суррогатных операторов и подмены переменных. Не нужно учить СМАРТИ или чего другого, чего там напридумали.
Меня мучает всего один вопрос, как Вам хватило терпежу выучить РНР?
То что лично мне с Вами точно не по пути было понятно с самых первых постов. Но при чём тут коммунизм? Ни вы ни я в этой каше не варились и ещё доподлинно не известно как бы Вы "запели" в той ситуации. Вобщем не стоит приплетать политику к Вашим и без того абсурдным аргументам. Да и на счёт ярлыков... Вы их сами же и вешаете, причём львиную долю на себя.
Не мне Вас учить как жить, но как Вы думаете почему "молчание - золото"?
А я Вам предлогал 29.12.2008 в 10:20 закончить дискуссию... | |
|
|
|
|
|
|
|
для: Valick
(15.04.2009 в 13:15)
| | А мож это http://lurkmore.ru/%D0%A2%D1%80%D0%BE%D0%BB%D0%BB%D1%8C
Заранее извеняюсь если обидел, надеюсь что это не так, и наш аппонент хороший и добрый и разумный человек, но очень похоже, раз речь уже пошла о политике и жизненных путях.
PS
Что-то эта ветка сплошной флуд, а по делу ничего нет. И народу собралось то. | |
|
|
|
|
|
|
|
для: zavragnov
(15.04.2009 в 13:27)
| | Я думаю нет. Просто набирите в поиске по форуму Николай2357. | |
|
|
|
|
|
|
|
для: Valick
(15.04.2009 в 13:15)
| | Вот видите, всё Вам известно доподлинно. Как же, разве может быть иначе, разве может что то происходить не так как Вы думаете...
Может.
Вот я к Вашему сведению успел повариться в той каше и даже был секретарем райкома комсомола. Потому и не подвержен массовому психозу. Я эту кашу не только хлебал, но и изнутри видел. Правда урвать не успел от пирога)))).
Теперь прежде чем делать что то, что делает толпа, я всегда копаюсь в сути и ищу истину. Не хочу быть массовкой. А форум для того и сделан, что бы высказать свою точку зрения. Если бы все счиали что "молчание - золото", то мы бы не вели такую приятную беседу.
А на счет ярлыков - я больше кодов пишу, а вместо аргументов против слышу только - мал, соплив, в проектах не участвовал. Ну не можете доказать обратное, оставьте инсенуации при себе.
Упивайтесь про себя своим "превосходством".
PS >А мож это
Заметьте, не я опять начал, но такого к себе отношения не потерплю. | |
|
|
|
|
|
|
|
для: Николай2357
(15.04.2009 в 13:38)
| | Вы случайно не историк по образованию?
Ну а раз уж на то пошло, то я в комсомол не вступал, потому, что был не согласен с их трактовкой идей марксизма-ленинизма и потому что уже можно было не вступать, а не потому что модно было не встуапать. Ну а если уж и от пирога не успели откусить, то разница в возрасте у нас с Вами не большая (если Вы на это намекали).
И мне кажется поварится Вы всётаки не успели, а так... немного ошпарило... | |
|
|
|
|
|
|
|
для: Николай2357
(15.04.2009 в 13:38)
| | TOP 5 причин для споров на тему шаблонизаторов
http://habrahabr.ru/blogs/php/45651/ | |
|
|
|
|
|
|
|
для: Николай2357
(14.04.2009 в 15:09)
| | Не дай бог на эту ветку придет новичёк.
Уважаемяя администрация форума, очень прошу промодерировать эту ветку, а лучше вообще удалить.
|
PS
Переучивать людей гораздо сложнее.
смесь бульдога с носорогом
|
это Вы правильно подметили, Вам еще учиться и учиться, а не спорить и чего-то доказывать | |
|
|
|
|
|
|
|
для: technic611
(30.12.2008 в 05:16)
| | поддерживает кэширование! | |
|
|
|
|