phpBBex 1.9.7 (на базе phpBB 3.0.14) с поддержкой PHP 8.3

thmn8

Администратор
Сообщения
1 311
Реакции
310
Сайт
tehadm.ru
Вышел phpBBex 1.9.7, основанный на phpBB 3.0.14. Теперь phpBBex 1.x поддерживает и PHP 8.3!

Репозиторий на GitHub →

Требования:
  • PHP 5.6 (не рекомендуется), 7.0+ (рекомендуется 7.4), 8.0+.
  • MySQL 5.5+ или MariaDB 5.5+.

Что нового?

Поддержка PHP 8.3


Поддержка PHP 7.0+ улучшается в phpBBex с каждым новым релизом начиная с версии 1.9.3. phpBBex 1.9.7 рекомендуется использовать на PHP 7.4 (так как поддержка этой версии лучше всего протестирована), но даже самый новый PHP 8.3 уже тоже поддерживается. Устаревший PHP 5.6 всё ещё поддерживается, но настоятельно рекомендуется обновиться, так как переход на PHP 7.0+ даёт заметный прирост производительности и снижает нагрузку на сервер.

Избавление от устаревшего кода

Новая миссия phpBBex − быть легковесным движком форумов, каким был оригинальный phpBB 3.0. И даже тут есть где избавиться от лишнего жирка.
  • Удалено много устаревшего кода для поддержки устаревших версий PHP. Для работы phpBBex нужен PHP 5.6 и выше.
  • Удалена неиспользуемая в phpBB 3.0 и phpBBex система хуков.
  • Удалён код поддержки IE5-IE10 в редакторе BBCode. IE11 всё ещё поддерживается.
  • Очищен код работы с БД от неподдерживаемых типов БД.
  • Из config.php удалён неиспользуемый параметр $dbms (во всех версиях phpBBex он мог быть только mysql).
  • Из config.php удалён вредный параметр $load_extensions, который использовался при некорректной конфигурации сервера и мог приводить к значительному замедлению работы форума. Все требуемые расширения PHP должны быть явно включены в конфигурации PHP, их динамическая подгрузка только скрывала проблему.
  • Удалены нерелевантные для phpBBex и устаревшие текстовые документы, такие как история изменений оригинального phpBB 3.0.
  • UMIL переехал в includes и доступен только в standalone варианте (всё остальное не использовалось).
Дистрибутив phpBBex полегчал почти на 100 килобайт!

Поддержка SMTP с TLS для доставки писем

Поддержка SMTP была значительно доработана. SMTP через TLS теперь тоже поддерживается, так что при желании можно настроить отправку писем, например, через Gmail. Для этого нужно указать адрес SMTP-сервера с префиксом tls:// (например, tls://smtp.gmail.com) и порт 465.

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

Полностью автоматические настройки сервера и cookies

В оригинальном phpBB ещё со времён на заре интернета всегда присутствовали настройки cookies и путей, некорректное изменение которых могло легко привести к полной неработоспособности форума и невозможности зайти под администратором, чтобы их исправить обратно. 20 лет назад эти настройки возможно и имели смысл, но с тех пор появились возможности полностью автоматически получать верные значения этих параметров, которые всегда будут работать и не приведут к поломке форума. Что и было сделано в phpBBex 1.9.7.

Все современные браузера корректно поддерживают cookies, поэтому нет необходимости поддерживать передачу номера сессии SID через URL на страницах пользователя, что имело смысл наверное только лет 25 назад. phpBBex не делал этого по умолчанию изначально, но была опция включения этой функции, требующей немало запутанного кода. Смысл был в том, что она могла помочь администратору попасть обратно в админку в случае установки неверных настроек cookies. Но так как теперь все настройки cookies устанавливаются автоматически, удалось упростить код движка и полностью избавиться от установки SID через URL на страницах для посетителей. Это не касается админки. В админкее SID передаётся через URL как дополнительная мера безопасности, где он используется не для поддержания сессии, а для её верификации.

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

Более логичная система прав

В оригинальном phpBB 3.0 система прав всегда была перегружена, и целый ряд прав не имел смысла. Например, право печати темы на самом деле просто убирало кнопку печати, но при этом пользователю всё равно ничто не мешало распечатать страницу. Или право пересылки личного сообщения просто убирало кнопку, но пользователю ничто не мешало скопировать текст сообщения и переслать его куда нужно. В phpBB 3.1+ многие из этих прав были упрощены и сделаны более разумными, и phpBBex перенимает лучшее.

Доработанная обработка ошибок

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

Отображение всех предупреждений можно включить обратно установкой @define('ERROR_REPORTING', E_ALL); либо включением отладочного режима @define('DEBUG', true); в config.php. Эти параметры будут полезны, если вы делаете какие-то изменения в коде и хотите убедиться, что в нём нет скрытых проблем, и что код готов к будущим версиям PHP.

Другие полезные изменения
  • В URL viewtopic.php больше не добавляется ненужный параметр f (как всегда было на phpbbex.com, но было недоступно в обычной версии движка).
  • Корректно показывается имя темы для сообщений (с префиксом «Re: ») в панели модератора.
  • Исправлена ошибка, когда переключатель разделов при переносе и объединении тем сбрасывал текущий режим.
  • Все файлы .htaccess наконец обновлены для совместимости с Apache 2.4+.
  • Расширение No Follow Externals теперь доступно для всех пользователей по умолчанию бесплатно.
  • Упоминание phpBBex в копирайтах не обязательно, копирайт phpBBex не добавляется если пользователь указал какой-то свой копирайт.
  • Немного сокращены тексты email-уведомлений.
  • Исправлена давняя ошибка, из-за которой пользователю мог отдаваться CSS, не соответствующий языку форума.
  • Кнопка цитирования теперь появляется и при выделении пальцем на сенсорном экране (а не только мышкой).
  • Скрипт обновления БД database_update.php переименован в db_update.php и научился обновлять все версии phpBBex 1.x.x и phpBB 3.0.x.
  • Инсталлятор больше не спрашивает необязательные настройки, которые потом можно поменять в панели администратора.
  • Инсталлятор создаёт config.php на самом последнем этапе, чтобы избежать ситуации, когда форум ещё не установлен, но файл конфигурации присутствует и скрипты форума уже пытаются работать.
Обновление c phpBBex 1.0.0+ до 1.9.7
  1. Сделайте резервную копию вашего сайта.
  2. Замените все файлы (кроме config.php!) предыдущей версии phpBBex.
  3. Запустите через браузер install/db_update.php?purge=all&bots=1. Скрипт попросит создать файл вида allow_upd_*.key в каталоге cache. Создайте такой файл и запустите скрипт ещё раз. Должна появиться надпись OK.
После обновлений со старых версий могли остаться некоторые хвосты, которые нужно удалить в админке:
  • Зайдите "Система" › "Управление модулями" › "Панель администратора" › "Общие" › "Конфигурация сервера", удалите "ACP_SEND_STATISTICS" (было удалено в версии 1.9.5) и "ACP_COOKIE_SETTINGS" (было удалено в версии 1.9.7).
  • Зайдите "Пользователи и группы" › "Управление группами", удалите устаревшую группу "REGISTERED_COPPA" (была удалена в версии 1.9.6).

Все ваши изменения придётся проделать повторно. Если у вас большое количество изменений, переносить их со старой версии форума на новую версию может быть утомительным. Вручную вносить правки из новой версии в вашу версию тоже плохой вариант — изменений слишком много. Для автоматизации процесса обновления рекомендуется освоить Git, и использовать последнюю версию движка из репозитория проекта.

Обновление кодировки уже существующей базы с utf8mb3 на utf8mb4

Если вы обновляетесь с версии до 1.9.6, рекомендуется также обновить кодировку БД со старой utf8mb3 на новую utf8mb4, что обеспечит поддержку emoji. К сожалению, процесс конвертации может быть нетривиальным, если вы использовали множество дополнительных модификаций. Обязательно сделайте бэкап базы перед конвертацией, так как достаточно велик риск, что что-то пойдёт не так. Затем запустите install/db_update.php?purge=cache&utf8mb4=1, создайте файл что вас попросит, и запустите скрипт повторно. Начнётся конвертация. Процесс конвертации может занять несколько минут! В самом конце, если всё хорошо, вы увидите OK. Если же в процессе возникла ошибка, ваша база будет в частично конвертированном состоянии, и лучше восстановить версию из бэкапа. Если у вас возникли проблемы с конвертацией, спрашивайте в этой теме — поможем. Скорее всего нужно будет немного подправить скрипт конвертации под особенности вашей базы.

В первоначальный релиз закрался небольшой баг, который приводил к тому, что в IE11 сессия запоминалась только до закрытия браузера. Согласно caniuse.com, IE8-11 должны поддерживать параметр Max-Age в Set-Cookie, но по-видимому это ошибочная информация, и на практике для него требуется дополнительно указывать устаревший параметр Expires.

Хоть IE11 и почти не используется, он всё ещё поддерживается в phpBBex, поэтому v1.9.7 перевыпущена с этим небольшим исправлением. Обновление доступно по всем старым ссылкам.

На самом деле, я изначально планировал выпустить v1.9.7 именно сегодня, но так как казалось, что уже всё запланированное и так готово, сделал это на неделю раньше.
 

Вложения

  • phpbbex_v1.9.7.7z
    1,1 МБ · Просмотры: 0
Хм. На основном сайте никто не заходит?) всех перебанил админ? Здесь то как это оказалось? Или ты теперь сам решил переделать phpbbex или все же Вег попросил?)
 
Последнее редактирование:
Хм. На основном сайте никто не заходит?) всех перебанил админ? Здесь то как это оказалось? Или ты теперь сам решил переделать phpbbex или все же Вег попросил?)
Привет! С Новым Годом! Я захожу иногда. Но я назван фашистом и забанен). Кстати, если заметил, расцветку Украины убрал она с названия.

Для себя храню версии phpbbex. Все таки согласись классный движек был. Ну и так мы там нормально тусили))
 
С Новым годом!) теперь понятно, можно качать. Ты молодец что решил сохранить. Движок отличный, мне нравился. Да и тусили хорошо. Было интересно. А расцветка думаю сменилась сама из-за зимнего стиля.
 
Назад
Верх Низ