форум vBSupport.ru > vBSupport.ru > Гурушник > Кодер
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Yoskaldyr
Специалист
Default Сравнение vb 3.8.х и 4.0.х с точки зрения кодера (сравнение API)
11

Немного предыстории:
Оффтоп

4-ка довольно сырой продукт. Но это совсем не значит, что нерабочий и не значит что задумки разработчиков были плохие. Просто 4-ка еще не доведена до ума.

И теперь и само сравнение, вернее + и – API 4-й булки по сравнению с 3-й. Для тех, кто в танке – поясняю, это сравнение именно API (и что можно сделать с его помощью), а не сравнение готовых продуктов - форумов 3.8.х 4.0.х. И не столько сравнение, а сколько описание плюсов и описание того, что хотела сделать старая команда разработчиков (а ниже, что получилось или как обстоит ситуация в последней версии).

1. Новое API в vB 4 стало более читабельным и более универсально-расширяемым (полноценный MVC фреймворк ). Но недостаток нового API в том ,что по нему отсутствует какая либо документация. К тому же очень похоже на то, что переписать весь форум под новое API видать просто не хватило времени. Как следствие внутри файлов винегрет из старого и нового API. Что значительно увеличивает в некоторых скриптах расход памяти.
2. В новом API появилась нормальная система кеширования, параллельная стандартной системе датастора. Именно нормальная система с поддержкой TTL, а не урезанный датастор. Одно но – есть класс для работы только с базой, хотя при желании написать класс для поддержки любого другого кеша (ea,xcache,APC,memcached) дело 10-15 минут, и это похоже в планах у разработчиков судя по комментам в коде (если они не напишут, для себя я всегда написать успею). К тому же очень большая вероятность, что в будущем датастор тоже будет использовать новый класс кеша.
3. Новый шаблонизатор (темплейтер) и алгоритм работы с ним – это аналог всех стандартных php темплейтеров. И заменить его на свой при желании, не составляет никаких проблем. Как следствие в шаблонах можно полностью избавиться от eval-а, что очень важно на хайлоад сайтах. Вот в 3-ке полностью избавиться в шаблонах от eval-а не получится без изменения всех файлов (т.к. eval внутри файла скрипта, а не внутри класса шаблонизатора), минимализировать eval можно, но избавиться - нет. Например, с минимальными модификациями можно прикрутить smarty, quicky или любой другой темплейтер. И кстати конструкция vb:raw - зло, так никогда в булке не будет нормального и быстрого шаблонизатора (разрабы сделали ее для совместимости, т.к. не успевали все переписать)
4. Шаблоны разбиты на css-шаблоны и html-шаблоны (это конечно не столько API, а сколько архитектура продукта). HTML шаблоны стали значительно меньше из-за перехода на дивы, т.е. расход памяти при работе скрипта как следствие тоже будет меньше (качество этой верстки я не беру в расчет - я говорю о размере). Как следствие значительно уменьшается объем трафика при работе с форумом (css один раз брозер получил и все, он больше не будет дергаться при открытии страниц)

Как следствие (зная особенности API) в 4-ке можно получить столько же запросов сколько и в 3.8 (а иногда и меньше), плюс возможности изменения функционала в 4-ке на порядок выше и это не система хуков через eval, а готовые классы которые будут уже скомпилированы, т.е. никакого eval в момент выполнения скрипта. Типичный пример модуль поиска через sphinx, на 3-ке реализовано все на порядок хуже.
Для хаков подключающий только global.php 4-ка уже ничем не хуже 3-ки, т.к. по количеству запросов, расходу памяти и т.д. в данном случае (только один global.php) 3.8 и 4.0 идентичны.

Но все же 4-ку в данный момент нельзя использовать (без допиливания) под посещаемые ресурсы. Во первых - больший расход памяти (2 фреймворка одновременно однозначно больше потреблять памяти будут чем один из них). Во вторых – отсутствие в данный момент кеш класса для работы с PHP варкешами (xcache, ea, apc, memcached), как следствие уйма лишних запросов (особенно заметно в CMS-ке, где кеш по полному используется).
Но с другой стороны 4-ку разогнать на порядок проще, чем 3-ку. Т.е. для достижения одинакового результата в 3-ке надо вносить на порядок больше изменений в оригинальные файлы чем в 4-ке.

Также в 4-ке на порядок проще сделать отдельный продукт, по типу блогов или CMS со своей логикой ЧПУ. Хотя писать продукты на новом API довольно проблематично из-за отсутствия документации по нему.

P.S. То что все говорят что в новой булке нечитаемый код, то это только из-за того что новое API просто совсем другое – уже на порядок больше ООП, чем было раньше. В 3.8 все-таки больше процедурный стиль программирования, хотя и присутствуют классы.

P.P.S. На vbsupport-е постоянно холивары и обливание г..ом 4-ю булку, не хочется чтобы и этот топик превратился в еще один холивар.

Yoskaldyr добавил 08.05.2010 в 23:30
Вообще-то интересно мнение других кодеров, кто кодил под 4-ку и разбирался с кодом 4-ки т.к. все вышесказанное, только лишь мое мнение, у кого-то может быть совсем противоположное

Last edited by Yoskaldyr : 05-09-2010 at 12:30 AM. Reason: Добавлено сообщение
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Yoskaldyr
Специалист
Default
0

Судя по тому что вообще нет комментов, то похоже код 4-ки никто и не смотрел...
 
 
Fedcomp
На доске почёта
клон maJic
 
banned nax
Default
0

Yoskaldyr, почему, пробегался, но писать ещё полноценных больших продуктов под неё не приходилось.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Yoskaldyr View Post
похоже код 4-ки никто и не смотрел
смотрел
Quote:
Originally Posted by Yoskaldyr View Post
постоянно холивары и обливание г..ом 4-ю булку, не хочется чтобы и этот топик превратился в еще один холивар.
..........................
 
 
mad@Max
Эксперт
 
mad@Max's Avatar
Default
4

Могу высказаться в защиту 4ки, ибо достаточно ее поковырял
Да, код местами кривоват или попросту не дописан, т.к. писалось все из под палки и подгонялось в сроки. В частности, как я уже говорил с Yoskaldyr, мне не понравилось объединение двух движков в один. Я не говорю, что это плохо, а то как это сделано. Многочисленный классы, контроллеры, абстрактные методы (и классы) - ООП рулит, не спорю, просто теперь, чтобы добыть какой нибудь запрос приходится тратить уйму времени, чтобы найти нужный класс, метод, контроллер, тип и т.д. Возможно это из-за отсутствия документации на 4ку, однако, это, опять же, косяк "vBulletin Solutions, Inc.".
В остальных случаях код вполне читаем и понятен, даже удобнее чем в 3ке. И мне в принципе понравился шаблонизатор, по крайней мере он теперь проходит валадицию в прогах и его можно форматить С ccs тоже хорошая фишка. Так что можно сказать, что плюсов больше, нежели минусов
 
 
m0rbid
Продвинутый
Default
0

Quote:
Originally Posted by Yoskaldyr View Post
можно полностью избавиться от eval-а, что очень важно на хайлоад сайтах
с чего вы взяли что eval в булке это зло?
 
 
Yoskaldyr
Специалист
Default
0

Quote:
Originally Posted by m0rbid View Post
с чего вы взяли что eval в булке это зло?
читаем внимательно мое сообщение, а именно, я делал акцент именно для хайлоад сайтов. Я не говорил что вообще eval зло, я говорил зло в шаблонах.

Т.е. зачем каждый раз при отображении компилировать одно и то же??? Не зря же делают опкод кешеры (и это уже стандарт дефакто для хостингов - ea, xcache, zend). Как раз для того что бы не парсить каждый раз php код в момент выполнения. Eval же это и есть парсинг кода независимо от опкод кешера.
Для примера, перенос хуков и шаблонов в файлы у меня ускорил генерацию главной страницы в 1.5 раза (полностью отказаться от eval-а в 3-ке нельзя, но уменьшить количество eval кода можно)
 
 
m0rbid
Продвинутый
Default
0

Quote:
Originally Posted by Yoskaldyr View Post
Т.е. зачем каждый раз при отображении компилировать одно и то же??? Не зря же делают опкод кешеры (и это уже стандарт дефакто для хостингов - ea, xcache, zend). Как раз для того что бы не парсить каждый раз php код в момент выполнения.
вам в любом случае придется парсить шаблоны в момент выполнения. Ибо они в бд лежат.
попросту говоря
Посмотрите функцию fetch_template в третей булке.

$tpl = mysql_fetch_array(mysql_query("SELECT..."));
eval("$tpl");

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

Quote:
Originally Posted by m0rbid View Post
вам в любом случае придется парсить шаблоны в момент выполнения. Ибо они в бд лежат.
у меня нет - все берется из кеша (шаблонов нет так много, чтобы постоянно дергать их из БД)
Quote:
Originally Posted by m0rbid View Post
Посмотрите функцию fetch_template в третей булке.
$tpl = mysql_fetch_array(mysql_query("SELECT..."));
eval("$tpl");
Почти, так.
Только вот eval идет для того что возвращает функа fetch_template и это совсем не значит что это будет браться из базы.
Вот почему я и говорю что в 3-ке нельзя полностью избавиться от eval-а без переписывания всех скриптов, т.к. eval в них, в 4-ке же можно - используя другой класс.
Рассказывать как я реализовал в 3-ке я не буду, т.к. это решение стоит денег и больших (хотя там все просто, но почему то никто не любит включать мозг при чтении кода и написании). Но в результате время eval-а сведено к минимуму, как с хуками, так и с шаблонами без изменения исходного кода. И это позволило значительно уменьшить время генерации страницы и разгрузило сайт. И выигрыш тем больше, чем навороченнее стиль и чем больше объем шаблонов.
А решение действительно из разряда - "а почему никто больше так не делает???". Хотя может и есть у кого подобное, только вот никто светить не будет однозначно. К тому же это решение просто неэффективно для небольших форумов - нужно только для очень крупных форумов с большой посещалкой.

Last edited by Yoskaldyr : 05-12-2010 at 06:02 PM.
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
0

Мне в четверке понравился класс vB который позволяет сразу глобализировать $vbulletin, класс не сложный но все же удобней стало.
Пример:
PHP Code:
require_once(DIR '/includes/class_bootstrap_framework.php');
vB_Bootstrap_Framework::init();

//VB4
function my()
{
             return 
vB::$vbulletin->options['bbtitle'];
}

//VB3
function my()
{
             global 
$vbulletin;
             return 
$vbulletin->options['bbtitle'];

и все пожалуй
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 08:48 PM.


Powered by vBulletin® Version 3.7.6
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.