Первое знакомство с phpBBex 1.9.x

Список разделов Общие разделы О phpBBex

Описание: Обсуждение phpBBex в целом, всё что не подходит в другие разделы.
Модератор: Поддержка

  • 1

Сообщение #1 VEG » 26.12.2024, 17:44

Что такое phpBBex?

phpBBex — это форк классического движка форумов phpBB 3.0, который такой же легковесный, как и оригинал, в отличие от более новых версий phpBB.

Первоначальная цель phpBBex была в расширении возможностей оригинального phpBB 3.0, чтобы избавить пользователей от необходимости установки большого количества необходимых (но иногда плохо интегрируемых) модов. Под этим флагом активная разработка phpBBex велась более 5 лет, была проделана огромная работа по доработке кода форума. Обо всех новшествах того периода можно прочитать в первом знакомстве с phpBBex 1.8.x.

Вместе с выходом phpBB 3.1, дороги phpBBex и phpBB разошлись. Старый phpBB предпочитал использовать легковесные решения, заточенные под цели движка, но начиная с phpBB 3.1 разработчики начали активно использовать довольно тяжеловесные библиотеки, которые плохо сочетаются со старым кодом phpBB. Я с таким подходом не согласен, и поэтому phpBBex 1.9.x теперь развивается как независимый форк, без оглядки на оригинальный phpBB.

Новая миссия phpBBex 1.9+ − быть легковесным движком форумов, каким был оригинальный phpBB 3.0. И даже тут есть где избавиться от лишнего жирка. Отказ от поддержки устаревших версий PHP и использование современных возможностей браузеров позволяют значительно сократить старый код.

Почему phpBBex 2.0.x заброшен?

Сразу после выхода phpBB 3.1, из-за несогласия с выбранным направлением развития движка, я не мог определиться, что с этим делать. Несколько лет phpBBex 1.x не обновлялся, и за дело взялся один из наших пользователей Sumanai. Он портировал мои изменения на phpBB 3.1 и назвал это phpBBex 2.0 (я не был против). На версии 2.0.4 развитие этой ветки остановилось, и всё ещё ждёт своего часа, когда кто-нибудь возьмётся за её поддержку. На данный момент она полностью заброшена и не поддерживает современные версии PHP. А я тем временем вернулся и продолжаю выпускать новые версии 1.9.x с поддержкой новых версий PHP на базе phpBB 3.0.

Таким образом, свежий phpBBex 1.9.8 новее заброшенного phpBBex 2.0.4. Использование одного имени приводит здесь к некоторой путанице.

Что нового в phpBBex 1.9.x?

Список всех новшеств за первые годы активной разработки phpBBex можно найти в первом знакомстве с phpBBex 1.8.x. Там много скриншотов с примерами! Здесь же рассмотрим свежие доработки в ветке 1.9.x за последние несколько лет.

Переезд разработки на GitHub

Git стал стандартом де-факто, и дальнейшее использование Mercurial было затруднительным. Последней каплей было удаление всех Mercurial-репозиториев на Bitbucket, под что попал и репозиторий проекта phpBBex. С тех пор репозиторий был сконвертирован в Git и дальнейшая разработка ведётся на GitHub.

Поддержка PHP 7.0+ и 8.0+

phpBBex 1.9.8 поддерживает все свежие версии PHP. Рекомендуется использовать PHP 7.4 (так как поддержка этой версии лучше всего протестирована), но и самый новый PHP 8.4 уже тоже поддерживается.

Устаревший PHP 5.6 всё ещё поддерживается, но настоятельно рекомендуется обновиться, так как переход на PHP 7.0+ даёт многократный прирост производительности и снижает нагрузку на сервер.

php56-vs-php74.png
php56-vs-php74.png (17.44 КБ) Просмотров: 133


Много старого кода в стиле PHP 4 было обновлено. К сожалению, скорее всего код старых модов придётся тоже дорабатывать, но обычно это требует каких-то достаточно простых изменений. Более высокая производительность стоит того!

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

Оригинальный phpBB был довольно быть легковесным движком, но даже тут есть где избавиться от лишнего жирка.

  • Удалено много устаревшего кода для поддержки устаревших версий PHP. Для работы phpBBex нужен PHP 5.6 и выше.
  • Удалён код поддержки IE5-IE10. IE11 всё ещё поддерживается.
  • MediaElement.JS заменён на стандартные HTML5 <audio> и <video>.
  • Используется CSS-свойство border-radius вместо картинок скругленных углов.
  • Удалена специальная поддержка для вложений Flash, так как он более не поддерживается браузерами.
  • Удалён неиспользуемый код касательно устаревших контактов AIM, YIM и MSN.
  • Удалён код поддержки устаревших XCache, eAccelerator и WinCache, которые более не поддерживаются в PHP.
  • Поддержка устаревшего APC заменена на поддержку актуального APCu.
  • Удалён код давно нерабочей RECAPTCHA v1 (Google окончил поддержку этой версии в 2018 году).
  • Очищен код работы с БД от неподдерживаемых типов БД.
  • Удалён неиспользуемый код отправки статистики разработчикам phpBB.
  • Удалены нерелевантные для phpBBex и устаревшие текстовые документы, такие как история изменений оригинального phpBB 3.0.

По сравнению с версией 1.9.0, дистрибутив phpBBex 1.9.8 полегчал почти на 500 килобайт!

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

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

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

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

Доработана поддержка HTTPS

Поддержка HTTPS значительно доработана. Поддерживается конфигурация, когда Apache спрятан за проксирующим сервером типа nginx. Ссылки на текущий хост, но с другим протоколом (http или https) считаются внутренними. Из-за автоматических настроек cookies, форум может работать одновременно и по HTTP, и по HTTPS. Вы больше не сможете сломать авторизацию и поддержку сессии пользователя просто случайно выставив неверные настройки в админке.

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

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

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

Полная поддержка UTF-8, включая emoji: 🎼 🙃 🌠

Оригинальный phpBB разрабатывался во времена ранних MySQL, которые не поддерживали весь UTF-8 целиком. Использовалась урезанная кодировка utf8mb3, которая была лишь подмножеством UTF-8. Из-за этого попытка отправки сообщения, содержащего emoji, приводила к ошибке. Начиная с MySQL 5.5 (которая вышла 12 лет назад) появилась поддержка кодировки utf8mb4, которая поддерживает весь UTF-8, включая emoji. Новая версия phpBBex по умолчанию использует эту кодировку. Уже существующие БД нужно конвертировать в эту кодировку, чтобы появилась поддержка emoji.

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

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

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

Добавлено логирование ошибок и предупреждений PHP, чтобы можно было отслеживать ещё неисправленные проблемы совместимости с новыми версиями PHP. Если вы используете какие-то модификации, обязательно проверьте в Админка → Обслуживание → Лог ошибок, нет сыплет ли какой-то код ошибками, которые обязательно необходимо исправить для нормальной работы.

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

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

Telegram в профиле пользователя

В профиле пользователя появилась возможность указать контакт Telegram. Пользователь может указывать как просто имя пользователя, так и ссылку t.me, откуда имя пользователя извлекается автоматически.

Кнопка Telegram в минипрофиле использует протокол tg: для открытия контакта сразу в приложении, так как это консистентно с использованием протокола skype: для Skype, и обычные ссылки t.me могут быть заблокированы в некоторых странах.

Прощай, ICQ

Сервис ICQ был закрыт в июне 2024, так что поле для ввода номера ICQ теперь скрыто. Если у кого-то из старых пользователей был установлен номер ICQ — он всё ещё отображается в профиле (для ностальгирующих), и его можно изменить или удалить.

Адекватная настройка иконок тем

В оригинальном phpBB разработчики слишком намудрили с настройками иконок тем. Мало того, что их поддержка отдельно включается для каждого раздела, так ещё и права на выбор иконки темы выдаются каждому пользователю на каждый раздел отдельно. Мне самому понадобилось 10 минут, чтобы вспомнить и разобраться, как их включить. Нет необходимости в такой гибкости. В новой версии иконки тем включаются глобально одной простой настройкой в админке (в разделе «Размещение сообщений»).

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

Множество важных доработок в Support ToolKit

  • Reparse BBCode в STK больше не помечает все приватные сообщения как отредактированные администратором.
  • Reparse BBCode в STK больше не увеличивает счётчик редактирований, и не обновляет время редактирования сообщений на форуме.
  • По умолчанию ERK может быть запущен только через STK.
  • Вкладки Main и Support Tools в STK объединены в одну.
  • Удалена часть кода STK, отвечающего за поддержку устаревших версий phpBB 3.0.
  • Косметические изменения в STK для соответствия стилю ACP.

Доработан db_update.php

  • Скрипт обновления БД database_update.php переименован в db_update.php.
  • Научился обновлять все версии phpBBex 1.x.x и phpBB 3.0.x.
  • Для запуска db_update.php необходимо создать специальный файл allow_upd_*.key в каталоге cache, разрешающий запуск обновления на один раз. Это необходимо, чтобы не позволять запуск скрипта случайным прохожим.
  • Новый параметр purge=cache, который включает очистку кэша после обновления. Если передать purge=all, то помимо очистки кэша будет перезагружена информация о стилях.
  • Новый параметр utf8mb4=1, который помогает конвертировать существующую базу в кодировку utf8mb4.
  • Новый параметр bots=1, который (при включении) обновляет список ботов на уже установленном форуме.

Другие полезные изменения

  • Упоминание phpBBex в копирайтах не обязательно, копирайт phpBBex не добавляется если пользователь указал какой-то свой копирайт в админке.
  • В URL viewtopic.php больше не добавляется ненужный параметр f (как всегда было на phpbbex.com, но было недоступно в обычной версии движка).
  • Исправлена ошибка оригинального phpBB 3.0.14, позволявшая обходить ограничение времени между отправкой сообщений.
  • Возможность настройки rel="nofollow" для ссылок на внешние ресурсы.
  • Более точный подсчёт гостей (не учитываются сессии, cookie которых не были приняты).
  • Максимальная длина User-Agent поднята с 150 до 250 символов (некоторые популярные боты имеют очень длинный User-Agent, который ранее обрезался).
  • Стандартный список ботов актуализирован: устаревшие удалены, новые добавлены.
  • Немного сокращены тексты email-уведомлений.
  • Удалены устаревшие заголовки из отправляемых писем так как они не нравились некоторым спам-фильтрам.
  • В русской локализации термин "значок" заменён на "иконка" как на более общепринятый в этом контексте.
  • «Соглашение о конфиденциальности» и «Правила использования» сильно сокращены с сохранением сути.
  • Введённое содержимое форм не утрачивается при использовании кнопки «назад» в браузере.
  • Убраны неуместные кнопки сброса формы, которые могли привести к случайной утрате введённых данных.
  • В полях для добавления файлов сразу задаётся список поддерживаемых расширений.
  • Кнопка цитирования теперь появляется и при выделении пальцем на сенсорном экране (а не только мышкой).
  • В мобильных браузерах отключено автоувеличение шрифтов, которое ломало вёрстку и нормально не работало всё равно.
  • Исправлена давняя ошибка, из-за которой пользователю мог отдаваться CSS, не соответствующий языку форума.
  • Исправлены размеры кнопок в стандартном стиле. Стиль создавался под Firefox образца 2008 года. Современные браузеры отрисовывали кнопки меньше, чем задумывалось, что и было исправлено.
  • Настройки быстрого ответа перенесены к остальным настройкам размещения сообщений.
  • Инсталлятор больше не спрашивает необязательные настройки, которые потом можно поменять в панели администратора.
  • Инсталлятор создаёт config.php на самом последнем этапе, чтобы избежать ситуации, когда форум ещё не установлен, но файл конфигурации присутствует и скрипты форума уже пытаются работать.
  • Все файлы .htaccess наконец обновлены для совместимости с Apache 2.4+.

Будущее проекта

Годы бурного развития проекта с регулярным появлением новых больших фич позади. Я больше не работаю над проектом ежедневно вместо основной работы, как это было 10 лет назад. Однако, обновления сейчас выходят ежегодно, обычно после выхода очередной новой версии PHP. Каждый новый релиз не обходится без приятных изменений наподобие того, что описано выше. На данный момент планируется поддерживать проект в таком виде.

Сохраним дух классических веб-форумов вместе :)
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1678
С нами: 12 лет 8 месяцев

Вернуться в О phpBBex



cron