Developer hub/ru



Это общий обзор материалов о разработке MediaWiki, включающий ссылки на основные документы, ресурсы и инструменты для разработчиков MediaWiki. Они ориентированы на квалифицированных разработчиков LAMP, имеющих опыт использования MediaWiki.

Вводное руководство по разработке MediaWiki можно почерпнуть на странице «Как стать хакером MediaWiki» (eng.).

Для получения справки по установке или настройке MediaWiki обратитесь к. Для получения справки по использованию MediaWiki посетите.

Обзор
MediaWiki разрабатывается в стиле открытого ПО с использованием языка программирования PHP в первую очередь для платформы LAMP. Разработка ядра в основном координируется в онлайне.


 * Обсуждения разработки происходят в различных почтовых рассылках и IRC-каналы. Основной список рассылки разработчиков — это wikitech-l. Основной IRC-канал разработчиков — это #mediawiki. Ознакомьтесь со списком разработчиков, чтобы понять, что за люди участвуют в этих списках рассылки и IRC-каналах.


 * Управление исходным кодом осуществляется посредством системы контроля версий Git. Прочтите статьи Git с обзором того, как разработчики MediaWiki используют эту систему. Прочтите также статью labsconsole Help:Access (eng.) если хотите получить доступ.


 * Проверка кода выполняется с помощью Gerrit, см. все подробности на странице this workflow (eng.).


 * Разработчикам расширений и интерфейса MediaWiki (в отличие от работающих над кодом ядра), предоставляется несколько удобных точек расширения, в том числе API, система обработчиков (Hooks) и стилей или «шкурок» оформления (Skins) — см. обзор в разделе #Расширение MediaWiki на этой странице.

Основные документы


Код, разработка и стиль

 * Принципы разработки (eng.) — обзор основных правил разработки.


 * Coding conventions – learn how to write PHP code in the MediaWiki style.


 * Вопросы безопасности для разработчиков (eng.) — о том, как сохранять безопасность MediaWiki.


 * Контрольный список проверок кода перед отправкой (eng.) — изучите этот контрольный список перед отправкой кода.


 * Руководство по проверке кода (eng.) — руководство по анализу дополнений к исходному коду MediaWiki.


 * Запросы комментариев (Requests for Comment, RfC) — прочесть о новых функциях и возможностях экосистемы MediaWiki или предложить свои идеи.

Отладка и тестирование

 * Bugs/ru — обзор процедуры отслеживания ошибок в проекте MediaWiki.


 * How to debug – a guide to debugging MediaWiki.


 * Manual:Errors and symptoms – an overview of common MediaWiki errors and their correlating symptoms.


 * Selenium Framework (eng.) — о том, как научиться писать UI-тесты для MediaWiki, используя Selenium.


 * Unit testing – learn to write unit tests for MediaWiki using PHPUnit.


 *  – security issues are reported to [mailto:security@wikimedia.org security@wikimedia.org].



Архитектура

 * Manual:Code – an overview of the key parts of MediaWiki's source code.


 * Database layout – an overview of MediaWiki's database schemas.


 * Global object variables – a partial list of key global variables.


 * Localisation – learn about MediaWiki's internationalisation system.


 * Manual namespace on this wiki – documentation for developers.


 * Документация к классам MediaWiki (MediaWiki Class Reference) (eng.) — автоматически генерируемая техническая документация на классы и другие функции, используемые в MediaWiki. (Замечание: Документация классов весьма обширна, так что страницы могут загружаться довольно медленно.)


 * MediaWiki Virtual Library (eng.) — справочники. руководства, коллекция избранных статей.

Подсистемы

 * API – API MediaWiki обеспечивает прямой высокоуровневый доступ к данным, содержащимся в базах данных MediaWiki.


 * ContentHandler – MediaWiki's framework for supporting custom types of page content.


 * Доступ к данным (eng.) — обзор использования БД в MediaWiki, включая краткое руководство по работе на уровне абстракции БД (database abstraction layer).


 * Очередь заданий — специальный компонент MediaWiki's для асинхронного выполнения долгоиграющих задач.


 * API для сообщений — компонента MediaWiki для предоставления локализованных сообщений движка в PHP или JavaScript.

Расширение MediaWiki
MediaWiki has been designed to allow for modification without changing the "core code". This makes it easy to update to a new version of MediaWiki without having to manually merge in old extension code changes. There are six main extension points that allow developers to change or extend what MediaWiki can do. The extension points are:


 * API — доступ к данным и метаданным конкретной инсталляции MediaWiki через высокопроизводительный веб-API.


 * Перехваты — каждый раз, когда нужно сделать нечто...


 * Функции парсера — создание новой команды наподобие:


 * Шкурки («скины») — изменение стиля оформления MediaWiki.


 * Служебные страницы — добавление новой служебной страницы.


 * Расширения тэгов — создание нового тэга наподобие:

Помощь создателям расширений

 * Manual:Developing extensions — руководство по разработке расширений.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * Матрица расширений — автоматически генерируемый список расширений. См. также Category:Extensions, менее полный перечень существующих расширений.
 * Manual:$wgExtensionFunctions – use to defer setup (or run other callbacks) for extensions until after the MediaWiki core is setup.
 * Extension:BoilerPlate - пустое расширение шаблона

Помощь разработчикам стилей оформления

 * Manual:Skinning/ru — инструкции по созданию стилей оформления MediaWiki.
 * Manual:Skin configuration — руководство по настройке стилей оформления вики.

Help for library code reuse

 * Manual:Developing libraries – a guide to packaging third-party libraries for use with MediaWiki

Использование собственных вики

 * Enterprise hub — для корпоративных вики
 * — для учебных вики