Перейти к контенту
  • 0

IPB 3.0.0 - Вышел новый движок. Разбор структуры ядра.


Вопрос

Странно, недавно вышел новый релиз IPB 3.0.0 (с открытым кодом без IC) - а ни форума, ни отдельной ветки по предварительному обсуждению нового творения от IPB нет.

*Если тема не уместна здесь - просьба модераторов пристроить ее в нужном по их мнению разделе.

 

Признаться честно - весьма долго и не без интереса ждал новый релиз эры IPB 3.0 - в том смысле, что томил интерес - куда будет двигаться IPB дальше и что будет за ядро движка, ибо у конкурентов в лице VB уже давно тянется релиз серии (3.)

Очень было интересно - чем же ответит МЭТТ.

 

 

Поверхностные впечатления:

 

Вчера установил себе IPB 3.0 и долго изучал структуру нового движка.

Если честно, то не ожидал от IPB того, что я увижу, ибо та же эволюция движка 1.3 --> 2.0 --> 2.1 --> 2.2 --> 2.3 хоть и имела кардинальные и отличительные перемены в структуре, начиная от полностью переписанных и видоизмененных функций, классических классов (class_session, class_display), задействования кеширования, последовательности подключения модулей, работы c TEMPLATES, а так же преобразование а супер класс $ipsclass-> -- все это имело некую зримую последовательность формирования и развития структуры.

Например можно было наглядно открыть движок 2.0 и 2.3 и несложным образом проследить изменения в видоизменениях структуры (например для правки модуля под новые версии IPB)

 

В IPB 3.0 можно смело забыть про то, что было раньше.

СТРУКТУРНОЕ ЯДРО ПЕРЕПИСАНО ПОЛНОСТЬЮ.

 

Когда я открыл index.php - задался вопросом... а IPB ли это?

 

define( 'IPB_THIS_SCRIPT', 'public' );
require_once( './initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

ipsController::run();

exit();

 

Это для примера полный код файла index.php

 

 

Копая структуру движка дальше и пытаясь уловить последовательность работы новой логики в структуре ядра - удивление лишь возрастало. Хотя некоторые отголоски от 2.3 и остались, начиная от некоторых построений функций, логики в классах, SQL запросов, но это лишь ОТГОЛОСКИ...

Множество новых функций, модулей и современных возможностей от PHP 5.0

Полностью переписанная админ панель и принцип распределения permissions + многое другое.

 

Скажу одно - IBP 3.0 это абсолютно новый и ничем не похожий на предыдущие релизы продукт.

 

Время безусловно расставит все на свои места и покажет УЛУЧШИЛО ли данное решение в моделировании нового ядра IPB 3.0 или наоборот все УСЛОЖНИЛО.

Да, новый движок несет в себе не мало новых функций, внешне красив и привлекателен + имеет более расширенный функционал - но БУДЕТ ЛИ ОН ТАК ЖЕ ПРАКТИЧЕН как предыдущие релизы... будет ли он УДОБЕН И ГИБОК для МОДЕЛИРОВАНИЯ и трансформаций. В этом аспекте я пока не берусь судить, ибо надо более глубже изучать структуру.

 

Я отношусь к тем людям, которые не обращают внимание на ВНЕШНИЕ ФИШКИ - для меня они вторичны.

Для меня больше важна гибкость внутренней структуры... просто иногда когда заглядываешь в структуру кода ВНЕШНЕ КРАСИВОГО ДВИЖКА - ХОЧЕТСЯ ПЛАКАТЬ (Битрикс тому подтверждение).

Посему про IPB 3.0 мне пока сложно объективно судить.

 

Читая первые отзывы на официальном сайте - я нашел не мало не лестных отзывов и не довольных людей новой структурой движка. Многие отмечают запутанность и громоздкость новой структуры, но это лишь поверхностное восприятие, которое в основном будет касаться сложностей для разработчиков модулей/хаков для нового IPB 3.0, а не обычных пользователей.

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

 

Поживем - увидим.

 

 

P.S.: Просьба тех, кто уже имел возможность узреть новую структуру кода IPB 3.0 - поделиться своими впечатлениями, размышлениями и соображениями...

Что на первый взгляд понравилось, что нет. (не внешне, а ВНУТРЕННЕ)

Особенно интересно мнение людей, которые написали не один модуль/хак для IPB.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Это не хуки, это обычное наследование. Хорошо при написании своего продукта используя форум как фреймворк, и то только если нормально все разбили на методы (а если "как обычно", многоэкранные методы - то в сад таких пограммистов). Не очень хорошо для написания модулей, которые, к тому же, еше и кем-то отдельным инсталируются.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Форум для ленивых админов, которые с таким продуктом будут деградировать дальше и дальше.

Производительность упадёт ещё больше.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Это не хуки, это обычное наследование. Хорошо при написании своего продукта используя форум как фреймворк, и то только если нормально все разбили на методы (а если "как обычно", многоэкранные методы - то в сад таких пограммистов). Не очень хорошо для написания модулей, которые, к тому же, еше и кем-то отдельным инсталируются.

А под настоящими хуками мы понимаем сигналы?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Не очень хорошо для написания модулей, которые, к тому же, еше и кем-то отдельным инсталируются.

Ну модуль в терминологии IPB 3 это отдельное приложение с набором всех причиндалов (в том числе и хуков). Вроде модуль ядра, модуль форумов, пользователей, календаря, блогов и тп.

 

А "хук" в ИПБ это больше изменение стандартного поведения чего-либо внутри модуля. В общем что-то крайне не значимое. В виде вывода списка похожих тем внизу страницы темы. Так что тут скорее не чистое наследование, а еще и примешанный полиморфизм (хотя в ООП все его каноны идут рука об руку =) ).

 

Лучше скажите в чем потайной смысл использования рефлексии во фронт контролере ips. Что-то я там особой магии необходимой для применения рефлекшена не нашел. Не туда смотрел?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
А под настоящими хуками мы понимаем сигналы?

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0
По поводу сигнальной структуры хуков ИПС обрекло это дело по причине: "будет необходимо поддерживать точки вызова хуков ака fireevent, добавьте мне здесь, мне не хватает тут". А если дать возможность изменять реализацию, то соответственно этой проблемы уже нет, но появляются другие =)
Ссылка на комментарий
Поделиться на других сайтах

  • 0

"Дали возможность" =) На самом деле "забрать" эту возможность можно только одним способом - написанием говноклассов =) Чем тщательнее все разбито на методы, тем легче писать что-то свое.

 

Правда, даже если забыть о гиморе с инсталляцией таких модулей (исходные файлы форума все-равно править придется - класс переименовывать, а если там есть автолоадер - то и сам файл), тут еще один подводный камень. Требуется неукоснительное сохранение интерфейсов всех классов от версии к версии... извините, я в это не верю... особо в случае с IPS. Хуки, да, пришлось бы рассматривать заявки на добавление новых, но зато уж добавил - так добавил, хранить неизменное API в виде хуков легче.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Потихоньку собираю первые хуки и пишу "приложение".

 

Конечно же, довольно непривычно. Постоянно приходится лазить по ядру и искать функции, которые делают за тебя всю "грязную работу". Если раньше прямо посреди компонента можно было писать какое-нибудь низкоуровневое копание в переменных, то теперь как-то неприлично.

 

Вообще, довольно здорово. Когда натаскаешься, скорость разработки должна заметно повыситься.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Постоянно приходится лазить по ядру и искать функции, которые делают за тебя всю "грязную работу".

Сказывается недостаток документации.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.