XenForo (Unsupported)

Релиз XF2.3 XenForo (Unsupported) RC4

Форумный движок Xenforo
Да, мы переименовали большинство наших классов. Мы решили оставить классы сущностей в покое, поскольку они обычно канонически ссылаются на реальную вещь, поэтому пользовательская сущность с именем User показалась подходящей (и это аналогично другим фреймворкам PHP). Но многие другие классы теперь переименованы. Классы Finder имеют суффикс Finder. Классы репозитория имеют суффикс Repository. Классы контроллеров имеют суффикс Controller. Классы подключаемых модулей контроллера имеют суффикс Plugin. Классы служб имеют суффикс Service. И большинство наших классов обработчиков типов контента имеют суффикс Handler. Это не исчерпывающий список, но идею вы уловили.

Ого! А как насчет обратной совместимости?​

Мы позаботились об этом. Мы разработали систему псевдонимов, которая должна обрабатывать все эти имена классов разумным и обратно совместимым образом. Независимо от того, перегружен ли ваш код в настоящее время устаревшими строками, например, XF:User или вы уже перешли на использование строк класса, например, \XF\Repository\User::class, они будут автоматически переименованы в новый класс, например, \XF\Repository\UserRepository::class. Существующие дополнения и расширения классов продолжат работать в обычном режиме.

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

Гораздо более широкое использование для строк класса​

Напоминаю, что XenForo 2.3 предоставляет поддержку использования встроенных строк классов PHP. Например, изначально мы использовали "короткие имена классов" для указания на определенные классы. Хотя их было легко написать, это затрудняет рефакторинг классов, и вам нужны эти комментарии PHP doc, чтобы подсказать редакторам кода, какой объект в конечном итоге возвращается в коде:
PHP:
/** @var \XF\Entity\User $user **/
$user = \XF::em()->create('XF:User');

В дальнейшем мы предпочитаем использовать строки класса:
PHP:
$user = \XF::em()->create(\XF\Entity\User::class);

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

Теперь во всем коде core XF, начиная с RC3, мы заменили большинство этих устаревших коротких имен классов на собственные строки класса.

Исправление безопасности​

Сегодня мы уведомляем всех клиентов, использующих XenForo, о выявлении потенциальной уязвимости в системе безопасности. Все затронутые клиенты, использующие XenForo 2.3.0, должны обновиться до XenForo 2.3.0 Release Candidate 1, включая XenForo Media Gallery 2.3.0 Release Candidate 1, если это необходимо.

Если у вас также есть активные установки XenForo 2.2 или XenForo 2.1, вам следует обратиться к более ранней теме с подробной информацией и исправлением.

Проблема связана с потенциальной уязвимостью при подделке межсайтовых запросов и внедрении кода, которая может привести к удаленному выполнению кода (RCE) или использованию межсайтового скриптинга (XSS).

XenForo расширяется благодаря независимому исследователю безопасности Эгидио Романо (EgiX), работающему с SSD Secure Disclosure.

Мы рекомендуем выполнить полное обновление, чтобы устранить проблему.
Поскольку мы все больше приближаемся к легендарной стадии "release candidate" и, в конечном итоге, к стабильному выпуску, сегодня мы выпускаем восьмую бета-версию XenForo 2.3! На этой неделе не было ничего особенно примечательного, кроме ряда исправлений ошибок.

Мы настоятельно рекомендуем всем, кто тестирует 2.3 в течение этого периода бета-тестирования, обновляться по мере выпуска каждой бета-версии.
Добро пожаловать на 2.3.0 Beta 7! Со времени нашего последнего выпуска мы в основном снова сосредоточились на исправлениях ошибок и стабильности, хотя у нас есть интересное изменение, которое следует отметить, связанное с многобайтовыми строками, в частности латинизацией URL. Если доступно, теперь мы используем расширение intl и выполняем многоуровневый процесс нормализации и транслитерирования строк. Теперь это стало намного более интеллектуальным, поскольку оно обрабатывает некоторые особые случаи для определенных локалей (на основе языка форума по умолчанию).

У нас также появилась новая опция для управления выводом смайликов в URL. Вы можете оставить их в кодировке URL, удалить их или преобразовать в строку на основе названия смайлика. Для этого также требуется расширение intl.
Это бета-версия программного обеспечения. Официально оно не поддерживается.
Мы не рекомендуем запускать его в рабочей среде.

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

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