Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> S.M.A.R.T.Y за и против, Следует ли пользоваться? 
:(
    Опции темы
Kuznec
Дата 27.3.2008, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.4.2007
Где: КМА

Репутация: нет
Всего: нет



Кто пользуется данной технологией. Как обстоит дело с производителностью, используя смарти? Следует ли её применять при больших нагрузках на сервер или обычная подстановка переменных будет гораздо предпочтительнее? На какую нагрузку, в принципе можно расчитывать?

Вот такая дилема...
PM MAIL WWW   Вверх
Smith
Дата 27.3.2008, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 17.1.2007

Репутация: 1
Всего: 2



PM MAIL   Вверх
Iscander
  Дата 27.3.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 27.3.2008

Репутация: нет
Всего: нет



На вкус и цвет - товарища нет!
Лично мне не нравится smarty.
Препроцессор в препроцессоре.
Если не забывать функцию eval(), то код становится красивее и изящнее, код полностью разделен от шаблона. В шаблоне присутствуют только переменные:
Код

 while($board = $db->fetch_array($queryboard)) {
        {
    ....
     eval('$boardlist .= "'.template($boarddisplay).'";');
        }



Сам $boarddisplay это шаблон:
Код

<table  width="$tablewidth"  cellspacing="0" cellpadding="8" align="center">
  <tr> 
    <td valign=top>$StrTypeRenta 
      <form id="search" action="index.php" method="post">
      <table cellspacing="0" cellpadding="0" border="0" width="100%" align="center" bgcolor="$bordercolor">
        <tr> 
          <td>
        <table border="0" cellspacing="$borderwidth" cellpadding="$tablespace" width="100%">
                <tbody>
                  <tr bgcolor="$altbg2" class="ctrtablerow">
                    <td rowspan="5" align="right" valign="top">
                    <a href="#" onclick="Popup('u2u.php?action=send&username=admin', 'Window', 700, 450);"><img src="images/rek.png" width="200" height="150"></a></td>
                    <td rowspan="5" align="right" valign="top">$lang[id_metro]<br>
                      $SelLocation </td>
                    <td align="right">$lang[type_renta]</td>
                    <td align="left">$SelectTypeRenta </td>
                    <td rowspan="5" align="right" valign="bottom"> <div align="center"> 
                        <a href="#" onClick="Popup('images/metro.jpg', 'metro', 700, 820);"><img src="images/metro.gif" border="0" height="100""></a></div>
                      <br />
                      $NewBoard</td>
                  </tr>
                  <tr bgcolor="$altbg2" class="ctrtablerow"> 
                    <td align="right">$lang[numrooms]</td>
                    <td align="left"> <input id="rooms_num" name="rooms_num" size="3" type="text"> 
                    </td>
                  </tr>
                  <tr bgcolor="$altbg2" class="ctrtablerow"> 
                    <td align="right">$lang[price]</td>
                    <td align="left"> <input id="price2" name="price" value="" size="3" type="text">
                      $lang[inperiod] $lang[period] </td>
                  </tr>
                  <tr bgcolor="$altbg2" class="ctrtablerow"> 
                    <td align="right" nowrap="nowrap">$lang[sorting]</td>
                    <td align="left" nowrap="nowrap"> <select id="select2" name="sort">
                        <option value="date">$lang[ofdate]</option>
                        <option value="price">$lang[ofprice]</option>
                      </select> </td>
                  </tr>
                  <tr bgcolor="$altbg2" class="ctrtablerow"> 
                    <td><strong><font size="+1">$lang[fastsearch]</font></strong></td>
                    <td align="left"> <input name="search" type="image" value="fastsearch" src="$imgdir/search.gif" /> 
                    </td>
                  </tr>
                </tbody>
              </table>
</td></tr></table>        
      </form>
      
      
      <table cellspacing="0" cellpadding="0" border="0" width="100%" align="center" bgcolor="$bordercolor">
        <tr> 
          <td> <table border="0" cellspacing="$borderwidth" cellpadding="$tablespace" width="100%">
              $multipage 
              <tr class="header" align="center"> 
                <td>$lang[Num]</td>
                <td>$lang[Data]</td>
                <td>$lang[subject]</td>
                <td>$lang[street]</td>
                <td>$lang[id_metro]</td>
                <td>$lang[Tehnika]</td>
                <td>$lang[price]</td>
                <td>$lang[contact]</td>
                <td>$lang[tel]</td>
                <td>$lang[img]</td>
              </tr>
              $boardlist 
              
 </form>
              $sortby $multipage </table></td>
        </tr>
      </table>
      <table width="100%" cellspacing="0" cellpadding="0" align="center" style="margin-top: 3px">
        <tr> 
          <td class="post" align="right">&nbsp;$NewBoard</td>
        </tr>
      </table></td>
  </tr>
</table>



В smarty, в самом шаблоне, постоянно встречаются коды:

Код

{section name=i loop=5}
...
{if $smarty.section.i.index<$product_info.customers_rating}
...
{else}
...
{/if}
...
{/section}



То есть пришли к тому, от чего избавлялись.
Но работает, несмотря на все ухищрения, на мой взгляд, smarty медленнее
PM MAIL   Вверх
Feldmarschall
Дата 27.3.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Iscander, это ты в качестве анекдота написал? Или всерьёз думаешь, что в Смарти нельзя написать один и тот же кусок HTML кода 10 раз, и оставить, таким образом, только переменные?

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

Kuznec, тебе отвечать имеет смысл только после того, как модераторы почистят следы твоих метаний по разделам.

Это сообщение отредактировал(а) Feldmarschall - 27.3.2008, 10:52
PM   Вверх
Kuznec
Дата 27.3.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.4.2007
Где: КМА

Репутация: нет
Всего: нет



Feldmarschall, модераторы врятли будут чистить, т.к. не столько уж и много топиков получилось. Впрочем - это их дело. 

Просто поначалу я начал было изучать смарти, но задумался, а стОит ли терять на это время, что я выигрываю в итоге? Вот и всяческие конструкции в смарти мне тоже не очень нравятся: хотя и простые, но не уверен, что правильный это путь. Я сравниваю с тем, что я раньше перекладывал обработку данных на PHP, нежели на MySQL. С опытом стал писать более сложные запросы к БД, но тем самым в разы выигрывая в коде на PHP. Вот сейчас мне кажется, что СМАРТИ - это усложнение процесса, но может я не прав. Просто хочу раз и навсегда решить: буду ли я его использовать или же буду пользоваться другими методами сепарирования PHP и MySQL. 

Пока у меня всё вперемешку.
PM MAIL WWW   Вверх
Feldmarschall
Дата 27.3.2008, 11:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Смарти не занимается "сепарированием PHP и MySQL".
Смарти, теоретически, занимается отделением кода приложения (получения данных) от кода отображения (вывода данных).

Вообще, теоретически, любую вещь надо делать только тогда, когда точно знаешь - зачем она тебе. 
Пока ещё ни один человек не смог мне вразумительно ответить, зачем ему нужны шаблоны =)

Это сообщение отредактировал(а) Feldmarschall - 27.3.2008, 11:52
PM   Вверх
IZ@TOP
Дата 27.3.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Kuznec, PlainPHPView тебе в руки.
Я против Smarty. Какой в нем смысл, если так же можно писать на чистом PHP с той же идеологией использования?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
SamDark
Дата 27.3.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38





--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
smartov
Дата 27.3.2008, 13:28 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Kuznec, долгое время кодил, используя Smarty. Производительность у Smarty на нормальном уровне. Почему Smarty - в основном из-за того, что как сказал бы почтальон Печкин "велосипеда не было" - не применяли MVC framework. Очень трудно без разделения логики. 
С тех пор, как мы применяем MVC framework, а особенно после того, как я посмотрел и пощупал Zend Framework я практически полностью склоняюсь к тому, что Smarty не нужен. 
Единственным его преимуществом, получается, остается кеширование.

Добавлено через 54 секунды
Цитата(IZ@TOP @  27.3.2008,  11:56 Найти цитируемый пост)
PlainPHPView тебе в руки.

PlainPHPView - это что? Почему-то не гуглится ничего вразумительного.

Добавлено через 4 минуты и 51 секунду
Это вот это? http://rvk81.blogspot.com/2007/09/blog-post.html
PM MAIL   Вверх
awers
Дата 27.3.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



smartov, а чего смарти то с его кешем? почему к примеру не memcache?
PM MAIL WWW ICQ Skype   Вверх
IZ@TOP
Дата 27.3.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(smartov @  27.3.2008,  14:28 Найти цитируемый пост)
PlainPHPView - это что? Почему-то не гуглится ничего вразумительного. 

Это "чистый PHP" для View в MVC. По крайней мере, в некоторых проектах испоьзую именно такой способ шаблонизации.
Простейший класс, который предоставляет возможность передачи объектов/переменных в шаблоны и осуществляет их сборку.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Feldmarschall
Дата 27.3.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Путать "кеш" смарти с мемкешем - это сила =)

smartov, какой кеш имеется в виду? скомпилированные шаблоны? Ну так чистый пхп представляет из себя то же самое. 


Это сообщение отредактировал(а) Feldmarschall - 27.3.2008, 14:06
PM   Вверх
IZ@TOP
Дата 27.3.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Feldmarschall, Smarty кеширует данные на уровне файловой системы в собранном шаблоне; Memcache кеширует данные в памяти выделенного сервера. В принципе, и тот и другой - кешируют данные. Только в случае с Memcache, мы имеем больше возможностей по управлению кэшем и большую гибкость приложения при работе с отдельными  сущьностями.

Это сообщение отредактировал(а) IZ@TOP - 27.3.2008, 14:12


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Feldmarschall
Дата 27.3.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



IZ@TOP, тут вопрос не в том, где кэшировать, а в том - что.
не надо путать теплое с мягким. переписать смарти, чтобы он клал не только в файл, а еще ив мемкеш - нет проблем. 
Речь, повторюсь, не в том, где хранить.

Вообще, предлагаю из обсуждения мемкеш удалить, как жестокий оффтопик.


Это сообщение отредактировал(а) Feldmarschall - 27.3.2008, 14:16
PM   Вверх
Kuznec
Дата 27.3.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.4.2007
Где: КМА

Репутация: нет
Всего: нет



Цитата(Feldmarschall @  27.3.2008,  11:41 Найти цитируемый пост)
Смарти не занимается "сепарированием PHP и MySQL".

Да, фигню написал. HTML имел ввиду. Заговорился. 

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

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

Вот про рекомендованную ветку. Что-то я вообще ничего в XML не понимаю. Т.е. я понимаю, что это и как там работает на теории, но на практике даже не знаю каким кривым он запускается. Это я как-то вопросами Java интересовался, но так ничего хорошего из этого не вышло.

Вот пока я вижу, что больше против СМАРТИ, чем за.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.