Developer hub/ru



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

Вводное руководство по разработке MediaWiki можно почерпнуть на странице «Как стать хакером MediaWiki» (eng.). Если вы хотите понять, как использовать отдельные элементы MediaWiki (например, т.н. очередь заданий), см. ЧаВО разработчиков (eng.).

Для получения справки по установке или настройке MediaWiki, обратитесь к материалам для администраторов. Для получения справки по использованию MediaWiki, посетите Участник центр. Если вы хотите работать с другим программным обеспечением, используемым в проектах Викимедиа, см. центр разработчика на Мета-вики.

Обзор
MediaWiki разрабатывается в стиле открытого ПО с использованием языка программирования PHP в первую очередь для платформы LAMP. Разработка ядра в основном координируется в онлайне:
 * обсуждения разработки происходят в различных почтовых рассылках и IRC-каналы. Основной список рассылки разработчиков — это wikitech-l. Основной IRC-канал разработчиков — это #mediawiki. Ознакомьтесь со списком разработчиков, чтобы понять, что за  люди участвуют в этих списках рассылки и IRC-каналах.
 * «дорожная карта» MediaWiki покажет основные принципы и направления изменений, запланированные для реализации в будущих релизах.
 * отслеживание ошибок ведётся посредством ПО Bugzilla на сайте bugzilla.wikimedia.org. В статье Bugs (eng.) дан обзор используемого разработчиками MediaWiki процесса работы над ошибками.
 * о проблемах с безопасностью следует сообщать по адресу [mailto:security@wikimedia.org security@wikimedia.org]. Прочтите статью Security (eng.), чтобы узнать об этом подробнее.
 * задача анализа и проверки кода (code review) решается с помощью расширения MediaWiki CodeReview, посредством служебной страницы Special:Code/MediaWiki и реализованной в Bugzilla системы отправки пакетов исправлений (т.н. патчей), в соответствии с руководством по анализу и проверке кода (eng.).
 * управление исходным кодом осуществляется посредством системы контроля версий Git. Прочтите статью Git (eng.) с обзором того, как разработчики MediaWiki используют эту систему. Прочтите также статью labsconsole Help:Access (eng.) если хотите получить доступ.


 * документация для разработчиков ведётся в этой вики в рамках пространства имён Manual. Справку по файлам и классам (автоматически генерируемую из исходного кода MediaWiki посредством doxygen) можно найти по адресу http://svn.wikimedia.org/doc.
 * для тех, кто занимается разработкой расширений или развитием и улучшением интерфейса MediaWiki (в отличие от работающих над кодом ядра), есть несколько удобных точек расширения, в том числе API, система обработчиков (Hooks) и стилей или «шкурок» оформления (Skins) — см. обзор в разделе на этой странице.

Расширение MediaWiki
MediaWiki была спроектирована так, чтобы позволить вносить изменения без изменения основного кода. Это облегчает обновление при переходе на новую версию MediaWiki, так как исчезает необходимость при обновлении вручную править код существующих модулей расширения, заново приводя их в соответствие с основным кодом. Предусмотрено 5 основных способов, позволяющих разработчикам MediaWiki добавлять новые возможности, а также изменять существующие. Способы расширения следующие:


 * 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.

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

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

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

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