Портал разработчиков
Это общий обзор материалов о разработке MediaWiki, включающий ссылки на основные документы, ресурсы и инструменты для разработчиков MediaWiki. Они ориентированы на квалифицированных разработчиков LAMP, имеющих опыт использования MediaWiki.
- Если вы хотите использовать веб-API проектов Викимедиа, посетите портал разработчиков.
- Если вы хотите внести свой вклад в разработку программного обеспечения Викимедиа, смотрите Новые разработчики .
- Вводное руководство по разработке MediaWiki можно почерпнуть на странице Как стать MediaWiki хакером .
- Если вы хотите сотрудничать со сторонние пользователями MediaWiki, MediaWiki Stakeholders' Group (MWStake) — это MediaWiki группа пользователей, состоящая из разработчиков MediaWiki, системных администраторов, пользователей, консультантов и провайдеров хостинга.
Обзор
MediaWiki — это программное обеспечение, на основе которого создана Википедия, её родственные проекты, а также тысячи вики по всему миру.
MediaWiki написана на языке PHP [1]. Использует jQuery в качестве клиента к библиотеке JavaScript.
MediaWiki изначально написана для платформы LAMP [2] и работает в большинстве операционных систем. MediaWiki изначально использует сервера баз данных MySQL и MariaDB.[3]
MediaWiki разрабатывается в стиле открытого ПО[4], is largely coordinated online, and supported by the Wikimedia Foundation, though volunteer community developers play a huge part as well.
- Обсуждения разработки происходят в различных почтовых рассылках и IRC-каналах. Основной список рассылки разработчиков — это wikitech-l. Основной IRC-канал разработчиков — это #mediawiki подключиться.
- Управление исходным кодом осуществляется посредством системы контроля версий Git.[5]
- Проверка кода большинства проектов выполняется с помощью Gerrit . Следуйте это руководству чтобы настроить Git и Gerrit. Так вы сможете отправлять патчи.
- Bug reports (сообщения об ошибках) и задачи управляются с помощью Фабрикатор .
- Разработчикам расширений и интерфейса MediaWiki (вместо работы над кодом ядра), предоставляется несколько удобных точек расширения, в том числе API, система обработчиков (Hooks) и внешнего оформления (Skins) — см. обзор в разделе #Расширение MediaWiki на этой странице.
Основные документы
Код, разработка и стиль
- Development policy – обзор основных правил разработки.
- Соглашения по кодированию — о том, как научиться писать код в стиле MediaWiki.
- Безопасность для разработчиков – о том, как сохранять безопасность MediaWiki.
- Manual:Pre-commit checklist – изучите этот контрольный список перед отправкой кода.
- Руководство по проверке кода — руководство по анализу дополнений к исходному коду MediaWiki.
- Technical Decision Making Process – прочитайте о процессах принятия решений о крупных технических изменениях.
Отладка и тестирование
- Как выполнять отладку — руководство по отладке MediaWiki.
- Manual:Errors and symptoms – обзор типичных ошибок MediaWiki и соответствующих им симптомов.
- Тестирование в браузере – о том, как научиться писать UI-тесты для MediaWiki, используя Selenium.
- Юнит-тесты — о том, ка научиться писать юнит-тесты для MediaWiki, используя PHPUnit.
- Интеграционные тесты API – научиться писать интеграционные тесты API для MediaWiki, используя Mocha.
- Безопасность для разработчиков – научитесь писать безопасный код.
Архитектура
- Архитектура MediaWiki – введение в архитектуру MediaWiki
- Руководство:Код – обзор основных частей исходного кода MediaWiki.
- Manual:Макет базы данных – обзор схемы БД MediaWiki.
- Manual:Global object variables – неполный список основных глобальных переменных.
- Локализация – для изучения системы интернационализации MediaWiki.
- Manual — пространство имён в этой вики, где располагается документация для разработчиков.
- Документация к классам MediaWiki (MediaWiki Class Reference) — техническая документация, созданная из исходного кода MediaWiki. (Замечание: Документация классов весьма обширна, так что страницы могут загружаться довольно медленно.)
Подсистемы
- API – API MediaWiki обеспечивает прямой высокоуровневый доступ к данным, содержащимся в базах данных MediaWiki.
- ContentHandler – фреймворк MediaWiki для поддержки пользовательских типов содержимого страницы.
- Доступ к базе данных – обзор использования БД в MediaWiki, включая краткое руководство по работе на уровне абстракции БД (database abstraction layer).
- Очередь задач – специальный компонент MediaWiki's для асинхронного выполнения долгоиграющих задач.
- API сообщений – компонента MediaWiki для предоставления локализованных сообщений движка в PHP или JavaScript.
Расширение MediaWiki
MediaWiki была спроектирована так, чтобы позволить вносить изменения без изменения основного кода. Это облегчает обновление при переходе на новую версию MediaWiki, так как исчезает необходимость при обновлении вручную править код существующих модулей расширения, заново приводя их в соответствие с основным кодом. Предусмотрено шесть основных способов, позволяющих разработчикам MediaWiki добавлять новые возможности, а также изменять существующие. Способы расширения следующие:
- API — доступ к данным и метаданным конкретной инсталляции MediaWiki через его веб-API.
- Прерывания (хуки) – каждый раз, когда происходит какое-то событие, выполняется нечто...
- Функции парсера – создание новой команды наподобие:
{{#if:...|...|...}}
. - Стили оформления (skins) – изменение стиля оформления MediaWiki.
- Служебные страницы – добавление новой служебной страницы.
- Теги расширений – создание нового тэга наподобие:
<newtag>...</newtag>
. - Расширение вики-разметки – добавьте hook, чтобы изменить содержание викитекста.
Помощь создателям расширений
- Руководство:Разработка расширений – руководство по разработке расширений.
- Extensions FAQ
- Смотрите список расширений Категория:Расширения .
- Extension:BoilerPlate - пустой шаблон расширения.
Помощь разработчикам стилей оформления
- Руководство:Как создать тему оформления MediaWiki – инструкции по созданию стилей оформления MediaWiki.
- Руководство:Настройка темы оформления – руководство по настройке стилей оформления вики-сайта.
Справка по повторному использованию кода библиотек
- Manual:Developing libraries – руководство по подготовке сторонних библиотек для использования в MediaWiki
Примечания
- ↑ Не всё в MediaWiki написано на PHP. Некоторые вспомогательные утилиты написаны на других языках, включая пакетные файлы, сценарии командной строки, makefiles и Python.
- ↑ MediaWiki работает на большинстве платформ, которые поддерживают PHP, однако отсутствие определенных утилит или функций операционной системы может ограничить функциональность или производительность MediaWiki на платформах, отличных от LAMP.
- ↑ В MediaWiki кроме поддержки MySQL и MariaDB есть поддержка DBMS включая PostgreSQL и SQLite.
- ↑ Коллектив разработчиков представляет собой смесь добровольцев и штатных (или работающих по договору) сотрудников разных организаций. For a full list of who works on the MediaWiki code, read the Разработчики article.
- ↑ Просмотрите исходный код и ревизии репозиториев на Gerrit или загрузите исходный код в свою систему с помощью Gerrit .