開發人員中心
Appearance
本技術手冊是針對開發者和技術貢獻者,普通的MediaWiki使用者可能難以理解。 如果您正在尋找使用MediaWiki的文件,請閱讀MediaWiki便覽。
這是一個高階的MediaWiki開發的概述,包括關鍵文件的連結、資源、和MediaWiki開發者的可用工具。它是為已使用過MediaWiki的熟練LAMP 程序員寫的。
- 如果您想「使用」維基媒體web API,請訪問the Developer Portal。
- 如果您希望貢獻開發維基媒體軟件,請參閱新開發者。
- 要查找開發MediaWiki及其擴展功能的入門指導,請閱讀如何成為MediaWiki黑客。
- 如果您想與其他第三方MediaWiki用戶合作,MediaWiki利害關係者群組(MWStake)是MediaWiki用戶組,由MediaWiki開發人員、系統管理員、用戶、顧問和託管供應商共同組成。
概要
MediaWiki是維基百科與其姊妹項目,還有世界各地數以千計的維基網站使用的軟件。
MediaWiki以PHP編程語言書寫[1]。 它使用jQuery作為客戶端JavaScript庫。
MediaWiki主要為LAMP平台開發[2],並可以在大多數操作系統上運行。 MediaWiki首要使用MySQL與MariaDB數據庫服務器。[3]
開發以開源形式進行[4], 儘管志願者社區開發人員也發揮了很大的作用,但它在很大程度上是在線協調的,並得到了Wikimedia基金會的支持。
- 開發討論可以在各種郵件列表和IRC頻道中。 主要開發者列表為wikitech-l。 主要的開發者IRC頻道為#mediawiki 連線。
- 源代碼 使用Git版本控制系統進行管理。[5]
- 大多數項目代碼審查在Gerrit執行。參考這個入門以配置Git和Gerrit來提交補丁。
- 漏洞報告與任務是在Phabricator中管理的。
- MediaWiki中的開發者擴展或接口(而不修改核心代碼)有幾個便捷的擴展點,包括 API、鈎子系統。
主要文檔
編碼、開發和規範
- 開發方針 – 主要開發策略簡介。
- 代碼規範——學習MediaWiki中代碼規範。
- Security for developers – 了解如何保持MediaWiki系統安全。
- Pre-commit checklist – 在提交代碼前,請仔細根據核查表檢查相關事項。
- 代碼審查手冊——MediaWiki代碼審查手冊,供審查人員使用。
- Technical Decision Making Process – 技術決策流程,在進行重大技術性更改時可以參考。
- Developing libraries – 打包第三方函式庫以用於MediaWiki上的指引
調試和測試
- 怎樣調試——MediaWiki調試入門。
- Errors and symptoms – MediaWiki常見錯誤及解決辦法參考。
- 瀏覽器測試 – 學習如何使用Selenium為MediaWiki寫UI測試用例。
- 單元測試——學習用PHPUnit為MediaWiki開發單元測試用例。
- API集成測試 – 學習使用Mocha為MediaWiki編寫API集成測試。
- Security for developers – 了解如何寫安全代碼。
架構
- MediaWiki架構 – MediaWiki架構介紹。
- 程式碼 – MediaWiki關鍵源碼介紹。
- Manual:數據庫配置 – MediaWiki數據庫設計。
- 全域對象變量 – 部分全局變量說明。
- 在地化 – MediaWiki本地化系統設計說明。
- 該wiki上的手冊名字空間——開發者文檔。
- MediaWiki類別參考手冊——從MediaWiki源碼生成的技術文檔。 (注意:類別參考手冊很大,加載會比較慢。)
擴展MediaWiki
MediaWiki已設計為允許修改但無須改動核心代碼。這也使得用戶可以很方便地升級MediaWiki而無須手動把自己的修改重新加入到舊的擴展功能的代碼中。有幾個擴展點可以讓開發人員修改或擴展MediaWiki所能做的事。
擴展功能的開發人員的幫助文檔
- 開發擴充功能 – 擴展功能的開發指南。
- Extensions FAQ
- 參見分類:擴充功能現有擴展功能的列表。
- Extension:BoilerPlate – 一個空的擴展功能的模板。
皮膚的開發人員的幫助文檔
- 手冊:如何製作MediaWiki外觀 – MediaWiki皮膚的創建教程。
- 設定外觀 – wiki的皮膚配置的指南。
Help for gadget developers
- Gadget kitchen – a guide to developing user scripts and gadgets on wiki.
Help for module developers
- Scribunto/Lua參考手冊 – documentation for developing Lua modules on wiki.
- 擴充功能:Scribunto – 關於Scribunto擴展。
備註
- ↑ 不是所有MediaWiki代碼都由PHP書寫。一些支持工具是用其他語言書寫的,包括批處理文件、shell腳本、makefiles和Python。
- ↑ MediaWiki可以運行在大多數支持PHP的平台上,然而在非LAMP平台上,由於缺少某些實用工具或操作系統功能,可能會限制MediaWiki的功能或性能。
- ↑ MediaWiki此外支持DBMS,包括PostgreSQL以及SQLite等。
- ↑ 開發者是志願者和多個組織的帶薪職員(或承包商)的組合。有關使用MediaWiki代碼的人員的完整列表,請閱讀開發人員文章。
- ↑ 在Gerrit瀏覽源代碼和代碼存儲庫的修訂,或使用Gerrit下載源代碼至您的系統。