Перейти к основному содержанию

phpBB — проверка версии расширения

phpBB

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

Механизм проверки новой версии расширения в форуме phpBB имеется, сама проверка срабатывает в момент входа на страницу расширения в админке, или при нажатии на ссылку "Перепроверить все версии". Есть также механизм отправки уведомлений администраторам форумов о новых версиях.

Расширения, зарегистрированные в phpBB’s Customisation Database, автоматически получают этот функционал. Но мне, к примеру, там регистрироваться лень, а проверку последней версии надо бы сделать.

Проверка версии расширения

Данная инструкция актуальна для версии phpBB 3.3.

composer.json

В файл composer.json добавляем блок version-check, в котором указываем путь на свой сайт (или не свой) к JSON файлу с информацией о последних версиях расширения:

"extra": {
    "version-check": {
        "host": "my.site.com",
        "directory": "/versions",
        "filename": "acme_version_file.json",
        "ssl": false
    }
}
  • host — домен вашего сайта
  • directory — путь, директория или несколько директорий. Обратите внимание, первый символ — слеш, в конце нет слеша.
  • filename — имя JSON файла, может быть с любым расширением или вообще без него
  • ssl — тип протокола: HTTP или HTTPS

Получится URL:

http://my.site.com/versions/acme_version_file.json

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

Пример composer.json

 
composer.json

В данном примере JSON файл размещён по адресу:

https://internet-lab.ru/phpbb/yametrika

Примечание

У меня у JSON файла с версиями расширения мог меняться URL, нужно было сделать возможность в любой момент изменить путь таким образом, чтобы для пользователей это осталось прозрачным.

  • Я пытался на данный URL повесить редирект на динамическую страницу — редиректы недопустимы, файл должен существовать.
  • Я пытался передать в URL параметры — параметры тоже недопустимы, ошибка.
  • Я пытался проксировать URL, но на целевом ресурсе происходит ещё один редирект, что делает проксирование бесполезным.

Пришлось создать PHP файл, который внутри с помощью readfile считывает удалённый файл по URL с параметрами и редиректами и записывает его в буфер вывода.

JSON

По указанному нами URL нужно выложить JSON файл с описанием последних версий расширения. Пример из документации:

{
    "stable": {
        "1.0": {
            "current": "1.0.0",
            "announcement": "http://my.site.com/version_1.0.0",
            "download": "http://my.site.com/version_1.0.0.zip",
            "eol": null,
            "security": false
        }
    },
    "unstable": {
        "1.0": {
            "current": "1.0.1",
            "announcement": "http://my.site.com/version_1.0.1",
            "eol": null,
            "security": false
        },
        "1.1": {
            "current": "1.1.0-b4",
            "announcement": "http://my.site.com/version_1.1.0",
            "eol": null,
            "security": false
        }
    }
}
  • stable/unstable — это как-бы бранчи, один из них должен существовать обязательно. Могут быть оба. В нестабильной ветке можно указывать разрабатываемую версию.
  • X.Y — мажорная версия расширения, на ваш вкус и цвет.
  • current — текущая минорная версия расширения в данном бранче.
  • announcement — ссылка на страницу с информацией о выпуске. Любой URL.
  • download — ссылка на файл с версией расширения.

Пример JSON

 
https://internet-lab.ru/phpbb/yametrika

Теги

 

Похожие материалы

phpBB 3.2.9 — обновление до 3.3.0

Обновим форум с версии 3.2.9 на версию 3.3.0. Текущий форум работает на IIS. PHP версии 5.6.31. Минимально поддерживаемая phpBB 3.3 Proteus версия PHP повышена до PHP 7.1.3. Так что вместе с форумом придётся обновить PHP. Кроме того, в новой версии форума отказываются работать многие расширения, будем их чинить.

Теги