Обзор конференции Londonvasion – phpBB Ascraeus

Автор: Acyd Burn Пятница, Сентябрь 19th, 2008 1 комментарий

Рубрика: Разработка, Сообщество

Думаю, что настало самое время написать о презентациях, которые мы (разработчики) представили на Londonvasion. В них мы поделились информацией о планируемых нововведениях в следующей версии phpBB, носящей кодовое имя Ascraeus.

Однако, не стоит полагать, что всё перечисленное ниже со 100% вероятностью появится в новой версии популярного движка. Ряд описанных нововведений будет иметь место, некоторые из них вообще будут отброшены, а некоторые могут измениться до неузнаваемости. Это всего лишь планируемый на сегодняшний день объем изменений.

Необходимые изменения:

Спецификация для версии 3.0.х была написана несколько лет назад, поэтому нам пришлось вернуться к этому вопросу и решить, какое программное обеспечение необходимо для успешной работы phpBB сегодня.

Касательно языка программирования (PHP), мы решили отказаться от поддержки PHP4 в новой версии движка, в основном из-за того, что мы слишком долго ждали выхода свежей версии (PHP4 больше не существует, его можно считать покойным). К моменту выхода Ascraeus, скорее всего, будет представлена версия PHP под номером 6. На момент написания данной статьи мы предполагаем, что минимальным требованием для phpBB Ascraeus будет версия PHP 5.2.0+.

Кроме того, мы решили отказаться о поддержки версий баз данных, которые больше не поддерживаются своими владельцами. Например, MySQL 3.x и 4.x более не поддерживаются, теперь phpBB будет работать только с версиями 5.x и 6.x.

Возможно, данный список не полный, и в него необходимо добавить еще ряд программных продуктов из множества тех, с которыми работает phpBB, однако ситуация также зависит от ситуации на рынке к моменту первого официального релиза новой версии.

Важнейшие структурные улучшения:

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

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

Статичный phpBB класс для создания глобального пространства имен и группировки наиболее часто используемых глобальных переменных

Для наших «главных» классов ($db, $user, и т.д.) мы будем использовать статичные классы, как правило, используемые для имитации глобального пространства имен. Ссылки будут иметь следующий вид phpbb::$db, phpbb::$user, и т.д.

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

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

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

Изменения имен класса для предотвращения конфликтов с продуктами/кодом сторонних разработчиков

Имена классов будут немного изменены, теперь они будут иметь префиксы phpbb_, интерфейсы — phpbb_interface, абстрактные переменные — phpbb_interface и так далее…

Примеры расширения структуры

На данный момент ряд файлов не вызывают common.php для инициализации чего-либо, поэтому нам приходится дублировать код common.php. В приложении дан соответствующий пример. Чтобы иметь всего одну точку входа и соответствующий код, мы добавили новый «файл инициализации», который будет нести ответственность за группировку необходимых частей «основы» с минимальными усилиями. Данный файл будет вызываться из common.php, однако будет возможность вызывать данный файл другими файлами, которым необходима основа, но не нужна полная установка.

Таким образом, это поможет разделить два сценария использования. Первый заключается в доступе скрипта к структуре, второй — в инициализации специфических настроек phpBB.

Более того, наши функции-фильтры, а именно функции validate_* и параметры, управляющие функцией request_var() будут собраны для удобства повторного дальнейшего использования.

Функции управления URL-адресами и переадресации будут подвергнуты тем же самым изменениям.

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

Кеш

Мы в недавнем прошлом добавили систему кеша, поддерживающую APC, Xcache, shmop и прочие. Функция кеша, основанного на базах данных, будет также восстановлена. Более того, мы изменим саму структуру кеша.

Будут использоваться контейнеры кеша — текущий тип кеша теперь можно будет конфигурировать с помощью контейнеров. То есть, вы можете использовать файловый кеш для хранения шаблонов, базу данных — для хранения глобальных переменных и кеш памяти — для хранения sql-запросов, теперь все это будет очень легко настраиваемо. Один пример для иллюстрации гибкости, которой мы добились с помощью перечисленных усовершенствований структуры.

Новый парсер BB-кода:

Новый парсер BB-кода не страдает теми недостатками, которым был подвержен парсер в версиях 2.0.х и 3.0.х Он уже сдан на хранение и полностью заменит и улучшит систему BB-кода. Мы учли опыт создания парсера для версии 2.0.х и представили всеобщему вниманию новый парсер в версии 3.0.х. Однако, и новый парсер имел недостатки (не такие многочисленный, как для версии 2.0.х), особенно в области безопасности. Сегодня, проанализировав ошибки, мы можем говорить с уверенностью, что парсер версии 3.2.х не будут страдать отмеченными недостатками.

Ряд возможностей нового парсера BB-кода:

  • Анализ, работающий со стеком.
  • Возможность использовать BB-код для любых текстовых колонок.
  • Возможность использования парсера по запросу, например, при использовании кода для модерации нежелательных слов и выражений.
  • Отсутствие разделения между обычным и встроенным BB-кодом.
  • Регулярная поддержка.
  • Изменение механизма хранения BB-кода (разделение введенного текста и проанализированного текста)

Планируемые возможности:

Ниже представлен список планируемых усовершенствований в новой версии движка phpBB Ascraeus. Это длинный список. Можете назвать его «километровым» (да, конечно же, у нас есть более детальный список…но в нем много лишнего и он совсем не нужен в данной статье).

  • Новый центр модератора
    • Полная перестройка возможностей модерации
    • Добавлена функция линейной модерации
    • Возможность добавления заметок пользователя при выполнении нескольких модерирующих действий
    • Возможность доступа к инструментам модерации в результатах поиска
    • Шаблонные ответы
    • Контроль над предупреждениями
  • AJAX
    • Серверная библиотека
    • Выполняется в ряде ACP страниц
      • индикаторы выполнения
      • Страницы/контент в зависимости от конфигурации
    • Применяется для линейных инструментов модерации
    • Используется не всегда, а только по необходимости или при надобности
  • Система событий — система событий, работающая с помощью триггера
    • Триггер: Настраиваемый триггер определяет точку входа, например, количество постов пользователя достигло 20.
    • Условие: Условие необходимо для определения истинности события, чтобы запустить триггер и выполнить операцию. Например: Количество постов пользователя достигло 20.
    • Действие: Действие, которое выполняется в случае истинности условия при обработке события. Например: Добавить пользователя в группу Х.
    • Возврат: Возврат к методам сообщения о событии.
    • RSS
    • Изменения полей профиля
      • Новые типы (изображение, плавающая запятая и т.д.)
      • Все встроенные поля профиля объединены в типичные поля профиля
    • Улучшения системы личных сообщений
      • Запрос о подтверждении прочтения
      • Удаления ящика для входящих сообщений, вместо этого введен статус сообщения
      • Пользовательские опции для включения текста сообщения в уведомление о получении личного сообщения (ЛС)
      • Усовершенствованный отчет о ЛС
    • Система идентификации (авторизации)
      • Добавлена поддержка обновления данных профиля/дополнительных полей системы авторизации
      • Расширены возможности системы по обработке данных профиля, данный инструмент могут использовать остальные
      • Поддержка OpenID

     

    Ряд небольших планируемых изменений:

    • Система стилей теперь не будет хранить шаблоны и темы в базе данных. Система будет совместима с предыдущими версиями, но мы хотим использовать файловую систему для хранения шаблонов, тем и изображений. Изменения в ACP могут быть перенесены и на файловую систему
    • Префиксы названия топика
    • Специальные технические форумы (корзина, архивирование)
    • Обратимое удаление
    • Плагины с Каптчей
    • Упрощение работы с сессиями
    • Поддержка редактирования по очереди
    • Улучшенный хронометраж для определения времени выполнения операции
    • Улучшенная регистрация ошибок с помощью дополнительных возможностей извещений
    • Редактируемые разделы ЧАВО и Правила форума
    • Система помощи для администраторов и модераторов (маленькая иконка)
    • Возможность настройки предпочтения/опции пользователя по умолчанию
    • Возможно добавление таких сервисов как Akismet.
    • Использование в качестве резерва переменных, если что-то зависимое от языка недоступно.
    • Поддержка доменных имен IDN+IRI
    • Полная многоязыковая поддержка с помощью возможности отображения одного текста на нескольких языках (например, название форума и его описание).
    • Улучшенная поддержка DST (автоматическое переключение DST)

     

    События » Плагины » Хуки » API » Код

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

    События:

    Используется разработчиками/администраторами для определения специальных действий, запускаемых триггером

    Пример: Поместить пользователя в группу Х, если количество его постов достигло 10.

    Плагины:

    Используется для добавления новой функциональности в основные функции движка.

    Пример: Добавления новой ACP страницы с более детальной статистикой.

    Хуки:

    Используются сторонними разработчиками для интеграции phpBB в свои приложения/продукты.

    Пример: Joomla! Bridge

    API:

    Используются разработчиками для достижения определенных целей.

    Пример: Добавления пользователя в группу с помощью вызова API функции. Пример вызова: phpbb::$api::$user->add_to_group(‘ADMINISTRATORS’)

    Код

    Используется разработчиками/разработчиками программного ядра и касаются только их.

    Пример: Функция append_sid()

    Заключение:

    Предстоит многое сделать. Как вы видите, мы фактически только начали планировать то, что хотим получить в результате. Также необходимо принимать во внимание факт, что необходимо сохранить совместимость с предыдущими версиями движка, чтобы не переписывать все заново.

    Сегодня нашей главной целью по-прежнему остается Olympus. Обработка ошибок и управление собранным и целостным продуктом займет очень много времени.

    Если вы хотите посмотреть нашу презентацию, то можете перейти на нашу страницу на Londonvasion и посмотреть ее онлайн, либо загрузить видео и посмотреть его оффлайн.

    Оригинал поста: phpBB.com
    Перевод: Knopik

One Response to “Обзор конференции Londonvasion – phpBB Ascraeus”

  1. Fresh:

    Прикольно, будем ждать :)

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты