Открыть сервис

TYPO3 Extension Repository

TYPO3 Extension Repository (TER) — это централизованный онлайн-реестр и система управления расширениями (экстеншенами) для системы управления контентом (CMS) TYPO3. TER представляет собой каталог, в котором разработчики публикуют, а пользователи находят, загружают и устанавливают дополнительные компоненты, расширяющие функциональность базовой установки TYPO3. Система обеспечивает версионирование, документацию, рейтингование и автоматическую проверку совместимости расширений с различными версиями TYPO3.

История

Предпосылки и создание

Разработка TYPO3 началась в 1997 году датским программистом Каспером Скохёй (Kasper Skårhøj). Первоначально CMS поставлялась с минимальным набором функций, а расширение возможностей требовало ручного редактирования PHP-кода. С ростом популярности TYPO3 возникла потребность в стандартизированном способе распространения дополнений. В 2003 году, с выходом TYPO3 3.6, была представлена первая версия TER — веб-интерфейс для публикации и загрузки расширений. Репозиторий был интегрирован в официальный сайт TYPO3 (typo3.org) и изначально содержал несколько десятков модулей от сообщества.

Развитие и интеграция

В 2006 году, с релизом TYPO3 4.0, в ядро CMS был включён менеджер расширений (Extension Manager), который позволял устанавливать расширения непосредственно из TER через административную панель. Это упростило процесс: пользователю больше не требовалось вручную скачивать архивы и загружать их на сервер. В 2008 году TER был дополнен системой автоматического тестирования (Continuous Integration), которая проверяла совместимость расширений с последними версиями TYPO3. К 2010 году количество опубликованных расширений превысило 5000.

Модернизация

В 2013 году, в рамках подготовки к TYPO3 6.2, TER был переписан на современной платформе (Symfony 2) и получил REST API. Это позволило интегрировать репозиторий с внешними инструментами, такими как Composer — менеджер зависимостей для PHP. В 2015 году, с выходом TYPO3 7.0, была внедрена поддержка Composer-режима, что дало возможность устанавливать расширения не только через TER, но и через Packagist (основной реестр Composer). В 2017 году TER был переведён на новую инфраструктуру с использованием GitLab, что ускорило обработку заявок на публикацию. По состоянию на 2024 год в TER зарегистрировано более 12 000 расширений, а ежемесячное количество загрузок превышает 1 миллион.

Архитектура и принцип работы

Структура репозитория

TER представляет собой веб-приложение, работающее на серверах TYPO3 Association. В его основе лежит база данных (MySQL), в которой хранятся метаданные расширений: название, версия, автор, описание, категория, требования к версии TYPO3, дата публикации, количество загрузок и рейтинг. Сами файлы расширений (архивы .zip или .tar.gz) хранятся в файловой системе сервера. Каждое расширение имеет уникальный идентификатор — ключ (extension key), который регистрируется при публикации.

Процесс публикации

Разработчик создаёт расширение в соответствии с официальными стандартами TYPO3 (структура папок, файл конфигурации ext_emconf.php, описание в ext_emconf.php). Затем он регистрируется на typo3.org, получает ключ расширения (например, news, powermail, realurl) и загружает первую версию через веб-интерфейс или API. Система автоматически проверяет:

  • синтаксис PHP-кода;
  • наличие обязательных файлов (ext_emconf.php, ext_localconf.php, ext_tables.php);
  • совместимость с указанной версией TYPO3 (например, TYPO3 10.4 LTS);
  • отсутствие вредоносного кода (базовая проверка).

После успешной проверки расширение публикуется в TER. Каждая последующая версия (мажорная, минорная или патч) загружается отдельно, при этом старые версии остаются доступными для скачивания.

Установка расширений

Администратор TYPO3 может установить расширение тремя способами:

  1. Через менеджер расширений в админ-панели — ввод ключа расширения, автоматическая загрузка и установка.
  2. Через Composer — добавление записи "typo3-ter/<extension-key>": "<version>" в файл composer.json, после чего выполняется composer require.
  3. Вручную — скачивание архива с TER, распаковка в папку typo3conf/ext/ и активация через менеджер расширений.

Классификация расширений

По функциональному назначению

Расширения в TER делятся на категории, определённые сообществом:

  • Backend — расширения для административной панели (например, редакторы контента, инструменты для SEO);
  • Frontend — модули для отображения на сайте (плагины, шаблоны, виджеты);
  • System — системные утилиты (кеширование, работа с базой данных, авторизация);
  • Plugin — готовые функциональные блоки (формы обратной связи, галереи, календари);
  • Template — шаблоны и скелеты сайтов (например, Bootstrap Package);
  • Documentation — расширения для создания документации (например, sphinx).

По типу лицензии

Большинство расширений в TER распространяется под свободными лицензиями:

  • GNU General Public License (GPL) — около 85% всех расширений;
  • MIT License — около 10%;
  • BSD License — около 3%;
  • Проприетарные лицензии — менее 2% (обычно для коммерческих расширений, таких как платные плагины для интернет-магазинов).

По популярности и рейтингу

TER поддерживает систему рейтингования (от 1 до 5 звёзд) и подсчёт загрузок. Наиболее популярные расширения (например, news, powermail, realurl, solr) имеют десятки тысяч загрузок и высокий рейтинг. Сообщество также ведёт список «официально поддерживаемых» расширений (Core Extensions), которые поддерживаются командой разработчиков TYPO3.

Применение

Для разработчиков

TER является основным каналом распространения расширений. Разработчики публикуют свои модули, чтобы:

  • делиться решениями с сообществом;
  • получать обратную связь и отзывы;
  • отслеживать количество установок и версии;
  • интегрировать свои расширения с официальными инструментами TYPO3 (например, Extension Builder).

Для администраторов и пользователей

Администраторы сайтов на TYPO3 используют TER для:

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

Для интеграции с другими системами

TER интегрирован с:

  • Composer — через мета-пакеты typo3-ter/*;
  • GitLab — для автоматической сборки и тестирования;
  • GitHub — через зеркалирование (некоторые расширения дублируются на GitHub);
  • TYPO3 Extension Manager — встроенный в CMS инструмент.

Критика и ограничения

Проблемы с качеством

Несмотря на автоматическую проверку, TER не гарантирует высокое качество кода. Многие расширения содержат устаревшие функции, ошибки безопасности или несовместимы с последними версиями TYPO3. Сообщество неоднократно критиковало отсутствие обязательного код-ревью перед публикацией.

Устаревшие расширения

Значительная часть расширений (по оценкам, до 30%) не обновлялась более 5 лет и несовместима с TYPO3 10 LTS и выше. Это создаёт проблемы для администраторов, которые вынуждены искать альтернативы или поддерживать устаревшие версии CMS.

Конкуренция с Composer

С ростом популярности Composer в экосистеме PHP, TER стал восприниматься как устаревший инструмент. Многие разработчики предпочитают публиковать расширения только на Packagist, минуя TER. В ответ TYPO3 Association в 2020 году запустила инициативу по интеграции TER с Composer, чтобы сохранить единый реестр.

Ограниченная модерация

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

Интересные факты

  • Самое загружаемое расширение в TER — news (более 2 миллионов загрузок на 2024 год).
  • Крупнейшее расширение по объёму кода — powermail (более 500 000 строк PHP).
  • В TER есть расширения, созданные ещё для TYPO3 4.5 (выпущена в 2011 году) и до сих пор поддерживаемые.
  • Некоторые расширения (например, realurl) были настолько популярны, что их функциональность была включена в ядро TYPO3 (в TYPO3 10 LTS появился встроенный маршрутизатор).

Источники

  • TYPO3 Association. «TYPO3 Extension Repository Documentation». 2023.
  • Skårhøj, Kasper. «The History of TYPO3». 2012.
  • TYPO3 Community. «TER Statistics and Usage Report». 2024.
  • O’Reilly Media. «TYPO3: Enterprise Content Management». 2015.
  • Packt Publishing. «TYPO3 Extension Development». 2018.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →