Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Smarty+Ajax

396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Ктонибудь сталкивался с реализацией?

Есть сайт на основе smarty, по ключю GET в основное тело сайта <div id="content> выводится определенная страница из шаблона.
тоесть

index.tpl в котором прописано
 
Код:
<div id=content>
{include file="$main_content"}
</div>


в index.php прописано

 
Код:
if ($_GET['html']="page")
   {
    $smarty->assign("page_text", "trampampam");
    $smarty->assign("main_content", "page.tpl");
   }


в page.tpl

 
Код:
<span>{$page_text}</span>


так вот, как с помошью аякса сделать вывод скомпилированного содержимого page.tpl в тело <div id="content"> основной страницы?

Как вывести ответ аякса в определенный див я знаю, а вот как вывести целую страницу smarty без перезагрузки я не понимаю...
369
18 октября 2010 года
Kesano
451 / / 09.10.2007
1. Для Аякса вам нужно сделать отдельній backend.php который будет генерировать страницу на вывод, т.е. будет обрабатывать только page.tpl
2. Вывести: document.getElementById("content").innerHTML= ajax.responseText //где ajax - имя объекта ajax-запроса.
?. ????????
?+1. PROFIT!!!
244
18 октября 2010 года
UAS
2.0K / / 19.07.2006
Цитата:
Как вывести ответ аякса в определенный див я знаю, а вот как вывести целую страницу smarty без перезагрузки я не понимаю...


Какие-то противоречащие параграфы. Сами хотите вывести в див, и сказали, что знаете как, и тут же говорите, что не знаете.

Какая разница между smarty-страницей и ajax-ответом? Для браузера абсолютно параллельно - он получает только текст, а что это - его не колышит.

396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: UAS
Какие-то противоречащие параграфы. Сами хотите вывести в див, и сказали, что знаете как, и тут же говорите, что не знаете.

Какая разница между smarty-страницей и ajax-ответом? Для браузера абсолютно параллельно - он получает только текст, а что это - его не колышит.


Я просто не правильно выразился...
нет, я знаю как отправить запрос и получить ответ
потом этот ответ занести в любой объект это не проблема.

Но, тут то не просто ответ в виде данных или json массива, тут целая страница с html разметкой, шаблон в котором нужно проставить все переменные и после этого вывести...

У меня smarty возвращает массив отверов, допустим список названия новостей и коды каждой новости.

а в шаблоне написано

 
Код:
<table>
{sectoin name=i loop=$news}
  <tr>
    <td><a href="index.php?news={$news.id}">{$news.name}</a></td>
  </tr>
{/section}
</table>


я просто цепляю шаблон, смарти его выводит, а как это сделать аяксом без перезагрузки я не понимаю...
396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: Kesano
1. Для Аякса вам нужно сделать отдельній backend.php который будет генерировать страницу на вывод, т.е. будет обрабатывать только page.tpl
2. Вывести: document.getElementById("content").innerHTML= ajax.responseText //где ajax - имя объекта ajax-запроса.
?. ????????
?+1. PROFIT!!!



тоесть мне нужно:
1. Получить результат page.php
2. Отправить эти данные в backend.php с пометкой "pages"
3. В backend.php открыть шаблон, расставить значения по html объектам и то что получится отправить респонзом обратно после чего этот респонз вставлять в див=контент?
так получается?
а зачем getElement? можно же $('#element') ?

274
18 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Так давай как всегда по порядку.
берешь пишеш скрипт который тебе будет формировать подсекции страницы например page1.php, page2.php пишешь подключаеш смарти... и т.д. и т.п.
Тебе необходимо что бы по запросу /page1.php тебе в браузер выдалась полностью отрендераная часть страницы.

Теперь когда ты обратишся ажаксом к /page1.php тебе в ответ прийде HTML, который ты просто вставиш куда надо..

надеюсь я тя правильно понял и нормлаьно выразился
396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: Lone Wolf

Тебе необходимо что бы по запросу /page1.php тебе в браузер выдалась полностью отрендераная часть страницы.


да, по запросу /page1.php, page1.php открывает шаблон page1.tpl, расставляет все значения и выплевывает пользователю скомпилиную страничку.

Цитата:

Теперь когда ты обратишся ажаксом к /page1.php тебе в ответ прийде HTML, который ты просто вставиш куда надо..


да, page1.php должен открыть шаблон page1.tpl расставить все значения и да, выдать мне готовый html кусок кода.

тут еще момент всплыл:

смарти зараза компилирует из шаблона php страницу и кидает ее в кэш папку. Выглядит это как

/smatycach/kajghad87146781_page1.php

и когда мы вводим http://site.ru/page1.php то он нам подсовывает ранее скомпилированный
/smatycach/kajghad87146781_page1.php
или если мы на эту страницу не заходили раньше, то компилирует и подсовывает...


получается если решить вопрос:
отправил запрос в page1.php получил ответ в виде html, выдать в div=contect
то как решить вопрос с кэшем? Будем компилировать каждый раз?

274
18 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
не понял проблему с кешем...
ну да он кеширует и выдает пото с кеша, что тут плохого?
369
18 октября 2010 года
Kesano
451 / / 09.10.2007
Цитата: SibBear
тоесть мне нужно:
1. Получить результат page.php
2. Отправить эти данные в backend.php с пометкой "pages"
3. В backend.php открыть шаблон, расставить значения по html объектам и то что получится отправить респонзом обратно после чего этот респонз вставлять в див=контент?
так получается?
а зачем getElement? можно же $('#element') ?



1. Затем, что не все пионеры используют поделки типа jQuery.
2. Не нужно зыбывать, что innerHTML не работает, если туда передавать строки с фразами <script> </script>...
3. Аяксу безразлично, как много ХТМЛа вы в него передадите... Какие структуры и т.д. хоть всю страницу.

Единственное чего я пока не знаю, это перестраивает ли браузер ДОМ, когда в иннер передаются дивы и т.п.

396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: Lone Wolf
не понял проблему с кешем...
ну да он кеширует и выдает пото с кеша, что тут плохого?



это хорошо!
Я не понимаю реализации связки smarty+ajax, смарти компилирует своими средствами страницу, и своими же средствами ее выводит из кэша,
а ajax просто отправляет вопрос page1.php и получает ответ. Тоесть ему фактически смарти то и не нужен?

я сам короче запутался...

396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: Kesano
1. Затем, что не все пионеры используют поделки типа jQuery.
2. Не нужно зыбывать, что innerHTML не работает, если туда передавать строки с фразами <script> </script>...
3. Аяксу безразлично, как много ХТМЛа вы в него передадите... Какие структуры и т.д. хоть всю страницу.

Единственное чего я пока не знаю, это перестраивает ли браузер ДОМ, когда в иннер передаются дивы и т.п.


понял, спасибо, учту!

274
18 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: SibBear
это хорошо!
Я не понимаю реализации связки smarty+ajax, смарти компилирует своими средствами страницу, и своими же средствами ее выводит из кэша,
а ajax просто отправляет вопрос page1.php и получает ответ. Тоесть ему фактически смарти то и не нужен?

я сам короче запутался...



как не нужен? Смарти формирует ХТМЛ ответ в нужном виде..

396
18 октября 2010 года
SibBear
223 / / 27.07.2006
Так давайте с самого начала по порядку...
есть запрос http://site.ru/index.php?html=page

в index.php
 
Код:
include("page.php");
$smarty->display("index.tpl.html");


в index.tpl.html
 
Код:
<div id="content">
{include file="$main_content"}
</div>


в page.php
 
Код:
if ($_GET['html']="page")
   {
    $smarty->assign("page_text", "trampampam");
    $smarty->assign("main_content", "page.tpl.html");
   }


page.tpl.html
 
Код:
<span>{$page_text}</span>


общий итог
 
Код:
<div id="content">
  <span>trampampam</span>
</div>


вот.

Мне нужно, в index.tpl.html добавить ссылку с onclick=doajax

ajax отправляет в index.php POST "html=page"
index.php увидел пост и...

вот тут я сдулся.
244
19 октября 2010 года
UAS
2.0K / / 19.07.2006
Ну впишите в tpl ссылку и всё.
Если хотите вписать в шабло не через tpl, а через js, то два способа:
1) innerHTML
2) document.createElement(...), append к какому-либо тегу

[COLOR="Silver"]Если честно, то объяснять вы нифига не умеете. Всю тему вы что-то объясняете, только я так нифига и не понял, че надо. То сначала в див результат засунуть не можете, теперь вообще надо ссылку в шаблон вставить. Бред какой-то.[/COLOR]
15
19 октября 2010 года
shaelf
2.7K / / 04.05.2005
2Kesano innerHTML перестраивает DOM модель (перерисовывает).
2all Я вообще не пойму о чём тут речь) smarty это php шаблонизатор, который позволяет отделить логику от вида. AJAX же просто забирает данные с сервера, те же самые, которые видит браузер и ничего не знает о смарти... Для него это просто html (xml, plain text etc...). О чём речь то?) Может лучше о курицах с лампами поговорим, у них и то общего больше :)
274
19 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Не в обиду сказано, но я сам не могу понять в чем проблема.
Забудьте про смарти вас не должно волновать смарти, там или не смарти... Зенд, Симфони или вобще ничего....
Главное - вы шлете запрос, сервак обрабатывает, формируется ХТМЛ старница и отсылается назад. Кто формирует, как формуриет - не важно. Главное что бы скрипт правильно обработал, то что надо

В index.php вы вызываете include смартовский, вот он уже и распарсивает вам тпльку, подставляет переменные и т.д и т.п. итог - в респонсе нужная страница.

Как вы обратились к странице, аджаксом, не аджаксом - пофигу.
это прототайп:
 
Код:
new Ajax.Request('/index.php',{
    method:'post',
   parameters: {html:'page'}
   onSuccess: function(transport){
      $('content').innerHTML = transport.responseText;
  }
})


вот и весь вызов. теперь вам надо чтобы index.php при пост запросе и с параметром вернул, то что выв вставляете. в отрендереном виде.
396
19 октября 2010 года
SibBear
223 / / 27.07.2006
так, надо скайп подключать, нифига я объяснить не могу на пальцах...

Смарти распарсивает, а мне что делать, если у меня шаблон заточен под смарти? по запросу аякса самому распарсивать шаблон и выплевывать html текст? Я как только дохожу до элементов типа {section} {if} все, пипец, я вообще не понимаю как их сделать аяксом...

брать шаблон, удалять оттуда все элементы {смарти} и заменять аппендами и иннерами?
15
19 октября 2010 года
shaelf
2.7K / / 04.05.2005
Медведь, почитай плз что есть AJAX и с чем его едят и вопросы сами отпадут ))
PS Не надо скайпа, учись задавать вопросы письменно ))
396
19 октября 2010 года
SibBear
223 / / 27.07.2006
мне нужно, чтобы response содержал распарсенный smarty шаблон в виде готовой html страницы.
92
19 октября 2010 года
Тень Пса
2.2K / / 19.10.2006
ух йо... столько букав, и в итоге ясно что ничего не ясно =)

всё просто, SibBear: смарти твой работает на сервере, а AJAX на клиенте. Сделай AJAX-запрос к скрипту, который подключает смарти и выдаёт тебе HTML, и результат пихни в div. Всё.

Делаешь запрос, и что происходит на сервере (php-script):
1. подключили смарти
2. нашли данные, нужные в шаблоне.
3. запихали в шаблон
4. скомпилили шаблон
5. отдали всё стороне, которая всё запросила
6. ВСЁ, на этом твой смарти с пехапе и всем прочим работать закончил. контент ушел в твой AJAX-запрос как response

далее, ты получаешь респонс уже на страничке, откуда ты отправил запрос =)))) и пихаешь респонс в див (кстати, открою секрет всего мэджика, теперь твой респонс содержит "распарсенный smarty шаблон в виде готовой html страницы." (с) ;) )

Скайпов и прочего не надо.

Лучше прочитай про AJAX :) что такое и с чем едят (но его не едят, раньше средство такое чистящее было), как и сказали тут выше. Без понимания не получится.
274
19 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Тю.. так он тебе и выдаст ХТМЛ..
или у тебя проблема что получаешь шаблон?
или ты не пробывал даже?
369
19 октября 2010 года
Kesano
451 / / 09.10.2007
Сибирский ва... медведь...
Забудь ты вообще про Смарти... Научись для начала выводить AJAX'ом "Hello world!" на странице. Когда поймешь что передается, что отправляется - начинай читать что такое смарти и как оно работает (и вообще, смарти - ужасный тормознутый костыль).

И только когда ты поймешь как работают в отдельности Аякс и Смарти - только тогда ты решишь свой вопрос...

_http://xmlhttprequest.ru
Начинай отсюда... И забудь про свои jQuery и прочую срань...
Тебя в первом классе что учили, звёздочки обводить или интегральные уравнения решать? Начинай с простого.
244
19 октября 2010 года
UAS
2.0K / / 19.07.2006
Kesano, уж я попрошу не кидать камни в jQuery и Smarty, если не можете предложить альтернативы, которые хоть как-то наравне могли стоять с этими продуктами.

Хотя, если память не изменяет по Вашим сообщениям по форуму, то Вы больше любите велосипеды писать.
396
19 октября 2010 года
SibBear
223 / / 27.07.2006
Знаю я как работает ajax, знаю я как работает смарти, не в ту сторону ушли, проблема была получить ответ от смарти распарсенный.

Все, я разобрался, $smarty->display('мой шаблон') разбирает шаблон.
Структура сайта хитрая просто - слона не заметил.
У меня $smarty->display('index.tpl') сделано,
в index.tpl инклудятся все остальные шаблоны.

а то, что если сделать не index, а любой шаблон, тогда он отдаст только содержимое шаблона я не понимал...

Цитата: Тень Пса

Делаешь запрос, и что происходит на сервере (php-script):
1. подключили смарти
2. нашли данные, нужные в шаблоне.
3. запихали в шаблон
4. скомпилили шаблон
5. отдали всё стороне, которая всё запросила



Загвозка состояла в 5м пункте, теперь разобрался. Спасибо!

Всем спасибо, вопрос закрыт.

444
19 октября 2010 года
patison
323 / / 15.03.2007
Я конечно дико извиняюсь за оффтоп, но у меня вопрос к тов Kesano.
А почему вы считаете что Смарти это костыль???
274
19 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: patison
Я конечно дико извиняюсь за оффтоп, но у меня вопрос к тов Kesano.
А почему вы считаете что Смарти это костыль???



Холисрач в отдельную, тем пожалуйста или личку

396
19 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: patison
Я конечно дико извиняюсь за оффтоп, но у меня вопрос к тов Kesano.
А почему вы считаете что Смарти это костыль???



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

но это другая тема...

369
19 октября 2010 года
Kesano
451 / / 09.10.2007
Агась. Я сторонник того, что лучше писать свои велосипеды, чем использовать чужие громоздкие костыли.

Вероятно в ближайшее время я пересмотрю своё отношение к jQuery и Прототипу. Некоторые js вещи у них реализованы очень гуд... А вот смарти... ИМХО нужен только если ты пишешь движок типа ДЛЕ которые будешь ставить на кучи сайтов.

Предлагать альтернативы не буду... Хотя, по JS - есть маленькие библиотечки которые выполняют вполне конкретные функции.

И вообще, любой уважающий себя программист должен знать основы языка. А не как мартышка - взял библиотеку, посмотрел на неё и на форму - "Ааа! Не работает! Научите!" и т.д.

2 patison:
Выше написал...
Ибо со смарти - это как в анекдоте:
Хороший программист за 3 часа напишет программу, которая за 5 секунд сделат то, на что пользователяю потребуется 5 минут.
244
19 октября 2010 года
UAS
2.0K / / 19.07.2006
Ну тогда преимущствва пользования того же jQuery - хорошая абстракция над html-кодом и JS-операциями, корошее коммьюнити, стабильная кроссбразуерность. Не всегда может мелкая библиотека это обеспечить.
Громоздкость библиотеки не проблема, т.к. в проектах надо указывать путь не к jquery.js на своем сайте, а к файлу, хранимому на гугле (офиц.разработчики там размещают). Итого - получаем ещё и кэширование и меньшее качание трафика.
По крайней мере в объемах работ моих проектов - если бы я все писал ручками - я бы уже повесился, т.к. обработки кучи событий ввода, drag-drop-ные окошечки и прочие визуальные красоты руками пишутся очень долго, объем когда гигантский, возможность протестировать и отвечать за корректность работы на разных браузерах - минимальна.

Посчет Smarty - а вы с ней поработайте, ага. Только уже с третьей версией, т.к. во второй действительно были ошибки и некоторые неразумные поведения.
Я не сторонник писать в коде а-ля <?="ololo";?> <?php echo($k); ?> <?php for... ;?>
Как раз Smarty позволяет хотя бы верстальщику не смотреть на быдлокод разработчика бэкенда (в данном случае данных для вставки в шаблон). А лучше посмотрите примеры модулей для джумлы, ворд-пресса или друпала. Там без валерьянки и бутылки водки в шаблонах сразу и не разобраться, т.к. чтобы понять, как работает такая-то функция и что она возвращает в шаблоне - прийдется перерыть полкода модуля (в лучшем случае). А если писал ещё и быдлокодер (что гарантированно в 95% в джумле), то прийдется перерыть вообще весь код модуля и не попасть при этом в психушку.
Шаблонизатор (любой) позволяет отделить логику от представления - в этом смарти прекрасно справляется. С его использование не появляется проблем, описанных выше.
Главное, надо в самом шаблоне описать, какие переменные входят, после чего дизайнеру легко будет работать. Я сам принял привычку писать сначала бэкенд, потом фронтенд. Я себе лишь в комментах tpl-а пишу описание входных переменных и как с ними работать. Всё. Меня больше не колышит, как там работает генератор этих данных. Спустя три-четыре недели у меня нет обычно желания опять вспоминать весь код, чтобы отредактировать дизайн. Шаблонизатор сокращает время вхождения в код.

А что делать, если указанные вами переменные или ещё какая-либо операция в чистого php в шаблоне вызвала ошибку? или произошло пересечение имен переменных? Прямо в шаблоне писать catch(Exception), if( ... == null) и т.д.? Это ещё больше говнокодит. А если у вас ещё и неймспейсы юзаются - так это вообще ппц что будет в шаблоне творится.

И ещё - чтобы понять настоящую прелесть таких фреймворков и библиотек - надо писать и дорабатывать большие проекты, в которых предполагается больше 10к кода, более 15-30 грамотных таблиц.
И дело даже не в том, что использование библиотек вводит некое замедление работы сайта (для многих это критично). Дело в том, что возможность обработки ошибок и скорость разработки/доработки очень сильно выростает, а количество ошибок падает.

Топикстартеру советуют научиться излагать мысли. Не сочтите за грубость, но ни один ваш пост даже близко не намекнул на то, что вам надо использовать display. Уж ни один человек даже не подумал в эту сторону.
444
19 октября 2010 года
patison
323 / / 15.03.2007
Цитата: Kesano

2 patison:
Выше написал...
Ибо со смарти - это как в анекдоте:
Хороший программист за 3 часа напишет программу, которая за 5 секунд сделат то, на что пользователяю потребуется 5 минут.


Ну и бред вы пишите, товарищь...
Не знаю как у вас, а у меня на натяжку шаблонов смарти уходит немного времени. И потом, если нужно что-то менять в шаблоне (в выводе данных), я не роюсь в каше из html, css и php в одном файле. потому что на большом проекте, без использования шаблонизатора, внесение даже мелких исправлений будет отнимать критически много времени.

А скажите, вы считаете костылём сам смарти, или шаблонизаторы вцелом?

UAS: +1

15
19 октября 2010 года
shaelf
2.7K / / 04.05.2005
А Kesano промахнулся :))) На самом деле народ тему толкает) Смарти реально хорошая штука (по крайней мере нормальных альтернатив нету)... Есть ещё очень быстрый blitz, но у него идеология другая... Там даже циклов нету)) Но он реально шустрый.

PS Вообще MVC форева и точка ))
6
19 октября 2010 года
George
4.1K / / 05.01.2007
Я делал свою пастеоргу и файлообменник на PHP + JS + HTML (использовал при этом и Smarty и jQuery). Впечатления хорошие. Шаблоны править - одно удовольствие. Гибкость смартей тоже порадовала - циклы ж, как отписал Shaelf выше.
244
19 октября 2010 года
UAS
2.0K / / 19.07.2006
Вы главное 3ий смарти поюзайте. Он, правда, ещё бета, но у меня прекрасно работает. Из хороших исправлений могу выделить:
1) вомзожность использования $User->getComments()->get(...). Вообщем, теперь можно использовать сколь угодно ->, до этого в подобном коде ошибка вываливалась.
2) Исключения
3) {literal} для JS-участков теперь не надо - он сам различает где html, где js-блок.
4) Наследование шаблонов
396
19 октября 2010 года
SibBear
223 / / 27.07.2006
Цитата: UAS
Вы главное 3ий смарти поюзайте. Он, правда, ещё бета, но у меня прекрасно работает.


05/10 - 3.0 RC4 Release на оф. сайте. (пока правда не проверял)

369
21 октября 2010 года
Kesano
451 / / 09.10.2007
Нет, я абсолютно не против MVC.
Штука полезная, но ИМХО использовать её стоит когда над одним проектом работает несколько человек.

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

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

А в остальном... не вижу смысла в его использовании...

С другой стороны - так мощный и популярный движок как Вордпресс смарти не использует. почему?
=========

Это была лирика...

По сабжу, я настаиваю на том, что вам нужно понять как работает АЯКС и в первую очередь (судя по дополнениям топикстартера) разобаться как работает смарти и вывод.
6
21 октября 2010 года
George
4.1K / / 05.01.2007
Цитата: Kesano
Нет, я абсолютно не против MVC.
Штука полезная, но ИМХО использовать её стоит когда над одним проектом работает несколько человек.


Использовать эту штуку надо всегда по той простой причине, что схема "и жрец, и жнец, и на дуде игрец" в программировании выдает не очень качественные результаты. Программист не должен заниматься дизайном. А дизайнер не должен втыкать в серверный код. MVC эту проблему решает на раз.

Цитата: Kesano
Smarty же использовать в небольших проектах\сайтах с высокой нагрузкой считаю излишним, т.к. сам смарти, компиляция шаблонов, проверка соответствия шаблонов и т.д. - это лишняя нагрузка на сервер. Особенно если ваш сайт висит на виртуалхосте...

А это мерить надо. Если хостинг говно, то смарти там особой погоды вряд ли сделает.

Цитата: Kesano
Исходя из здравого смысла, работа с шаблонами (привет Смарти) нужна тогда, когда нужно иметь возможность эти шаблоны быстро менять\предоставлять пользователю выбор шаблона и т.п., когда вы пишете движок, которой хотите раздавать\ставить на разные ресурсы...

Имхо писать, предусматривая расширяемость - тру вей. Причем всегда. Даже когда кажется, что никогда это не пригодится в будущем.

Цитата: Kesano
С другой стороны - так мощный и популярный движок как Вордпресс смарти не использует. почему?

Вордпресс - плохо показательный пример. Его внутренняя архитектура ужасна.

15
22 октября 2010 года
shaelf
2.7K / / 04.05.2005
Мне опять дали поспамить, ура :))
>>Имхо писать, предусматривая расширяемость - тру вей.
Не согласен)) Писать нужно только то, что нужно ))
>>С другой стороны - так мощный и популярный движок как Вордпресс смарти не использует. почему?
Меня один раз попросили что-то там подправить... Я понял, что на психиатора больше потом потрачу)
>>Штука полезная, но ИМХО использовать её стоит когда над одним проектом работает несколько человек.
Я долгое время был одиночкой, но всё же использовал)) Согласен, что для hello world он не упёрся, но когда ты пишешь что-то и не хочешь потом забить на это, то нужно разделать на "рыбу и мясо". Я долго пробывал различные подходы, наблюдал за другими людьми, спрашивал с какими трудностями они сталкиваются... Чаще всего проблемы возникали "в каше" если там больше 2ух страниц. Есть один мой старый проект (Первенец :)) http://audiobazar.ru/ (не сочтите за рекламу), так вот, там каша) Когда меня просили сделать что-то похожее, я просто менял картинки, т.к. даже вёрстку потом поменять не мог. Есть другой пример http://respect-ipoteka.ru/, там использовался гибридный подход (скажем было VC )), изменения стало вносить проще. Когда пересел на "чистое MVC" и начал с ним ставить различные эксперименты (использовал современный подход и smalltalk), то жизнь реально стала проще.

Теперь давайте попробуем потролить вот это (тут в меня должны лететь гнилые помидоры:) ):
>>Smarty же использовать в небольших проектах\сайтах с высокой нагрузкой считаю излишним, т.к. сам смарти, компиляция шаблонов, проверка соответствия шаблонов и т.д. - это лишняя нагрузка на сервер.
Кто меня знает, тот скажет, что я всеми руками и ногами за оптимизацию кода (это прикольно.. наверное самое интересное в программирование), но есть но... Сейчас время не вылизанного кода, а денег. Если сайт будет работать на 100р медленней (за хостинг будут больше платить), а там нужно делать (даже косметическое изменение) хотя бы раз в месяц и тебе за это платить, угадай, что будет для руководства предпочтительней, платить тебе за 2 часа работы или за 10 мин? Ещё если ты спрыгнешь с проекта, то поддерживать шалбон проще будет другому.

PS. Уфф.. выговорился))
PSS. Напомните мне утром перечитать это :)
6
22 октября 2010 года
George
4.1K / / 05.01.2007
Цитата: shaelf
Мне опять дали поспамить, ура :))
>>Имхо писать, предусматривая расширяемость - тру вей.
Не согласен)) Писать нужно только то, что нужно ))


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

Цитата: shaelf
PS. Уфф.. выговорился))

Йес!

Цитата: shaelf
PSS. Напомните мне утром перечитать это :)

Надо бы перечитать. Утро. :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог