Pusat pengembang
Ini adalah gambaran umum tingkat tinggi dari pengembangan MediaWiki, berisi pranala ke dokumen, sumber daya dan perkakas kunci yang disediakan kepada para pengembang MediaWiki. Ini ditulis untuk pengembang LAMP ahli yang punya pengalaman menggunakan MediaWiki.
- Jika Anda ingin menggunakan API web Wikimedia, kunjungi Portal Pengembang.
- Jika Anda ingin berkontribusi kepada pengembangan perangkat lunak Wikimedia, lihat Pengembang Baru .
- Untuk panduan pengantar pengembangan MediaWiki dan ekstensi MediaWiki, bacalah Bagaimana cara menjadi peretas MediaWiki .
- Jika Anda ingin berkolaborasi dengan pengguna MediaWiki pihak ketiga lainnya, Grup Pemangku Kepentingan MediaWiki (MWStake) adalah kelompok pengguna MediaWiki yang terdiri dari pengembang, administrator sistem, pengguna, konsultan, dan penyedia hos MediaWiki.
Gambaran umum
MediaWiki adalah perangkat lunak yang menenagai Wikipedia, proyek saudaranya dan ribuan wiki di dunia.
MediaWiki ditulis dengan bahasa pemograman PHP[1]. MediaWiki menggunakan jQuery sebagai pustaka JavaScript klien.
MediaWiki ditulis utamanya untuk platform LAMP[2] dan dijalankan di kebanyakan sistem operasi. MediaWiki pada umumnya menggunakan peladen basis data MySQL atau MariaDB.[3]
Pengembangan dilakukan dalam gaya sumber terbuka[4], dikoordinasikan secara daring, dan didukung oleh Wikimedia Foundation, tetapi komunitas sukarelawan memainkan peran penting juga.
- Diskusi pengembangan dilakukan di berbagai milis dan saluran IRC. Daftar pengembang utama berada di wikitech-l. Saluran IRC pengembang utama adalah #mediawiki connect.
- Kode sumber dikelola menggunakan sistem kendali versi Git.[5]
- Peninjuan kode untuk kebanyakan proyek dilakukan di Gerrit . Ikuti tutorial ini untuk memasang Git dan Gerrit agar bisa mengajukan tambalan.
- Laporan kekutu dan pekerjaan untuk kebanyakan proyek dilakukan di Phabricator .
- Pengembang yang mengerjakan ekstensi atau antarmuka MediaWiki (bukannya mengerjakan kode inti) memiliki beberapa titik ekstensi berguna, di antaranya API, sistem Hook dan Kulit – lihat bagian #Memperluas MediaWiki dari halaman ini untuk gambaran umum.
Dokumen kunci
Kode, pengembangan dan gaya
- Kebijakan pengembangan – ikhtisar kebijakan pengembangan kunci.
- Konvensi pengodean — pelajari cara menulis kode dalam gaya MediaWiki.
- Security for developers – pelajari cara membantu MediaWiki tetap aman.
- Manual:Pre-commit checklist – bacak daftar ini sebelum memasukkan kode.
- Panduan peninjauan kode — panduan bagi orang-orang yang meninjau commit ke kode sumber MediaWiki.
- Technical Decision Making Process – baca tentang proses untuk memutuskan perubahan teknis yang besar.
Awakutu dan uji coba
- Cara mengawakutu — panduan mengawakutu MediaWiki.
- Manual:Errors and symptoms – ikhtisar kesalahan MediaWiki yang umum dan gejala-gejalanya.
- Uji coba peramban – pelajari cara menulis tes UI untuk MediaWiki menggunakan Selenium.
- Pengujian unit — belajar menuli uji unit untuk MediaWiki menggunakan PHPUnit.
- uji coba integrasi API – pelajari cara menulis tes integrasi API untuk MediaWiki menggunakan Mocha.
- Security for developers – pelajari cara menulis kode sumber.
Arsitektur
- MediaWiki architecture – pengenalan ke arsitektur MediaWiki.
- Manual:Code – ikhtisar bagian-bagian kunci dari kode sumber MediaWiki.
- Manual:Layout basis data – ikhtisar skema basis data MediaWiki.
- Manual:Variabel objek global – daftar sebagian variabel global kunci.
- Pelokalan – pelajari tentang sistem internasionalisasi MediaWiki.
- Ruang nama Manual di wiki ini — dokumentasi bagi para pengembang.
- MediaWiki Class Reference – dokumentasi teknis yang dibuat dari kode sumber MediaWiki. (Catatan: Referensi kelasnya merupakan halaman yang besar dan lambat dimuat.)
Subsistem.
- API — API MediaWiki menyediakan akses tingkat tinggi langsung ke data yang terdapat di basis data MediaWiki.
- ContentHandler – kerangka kerja MediaWiki untuk tipe buatan sendiri pendukung konten halaman.
- Database access – gambaran umum menggunakan basis data di MediaWiki, termasuk pengantar singkat mengenai lapisan abstraksi basis data
- Antrian pekerjaan – kerangka kerja MediaWiki untuk memproses pekerjaan yang berjalan panjang secara asinkron.
- API Pesan – kerangka kerja MediaWiki untuk menyediakan pesan aplikasi yang dilokalisasi dengan PHP atau JavaScript.
Mengembangkan MediaWiki
MediaWiki dirancang agar memungkinkan modifikasi tanpa mengubah "kode inti". Ini membuatnya mudah untuk diperbarui ke versi baru MediaWiki tanpa perlu menggabungkan perubahan kode ekstensi lama secara manual. Ada enam poin ekstensi utama yang memungkinkan pengembang mengubah atau memperluas kemampuan MediaWiki. Poin-poin ekstensinya adalah:
- API — mengakses data dan metadata instansi MediaWiki melaui API webnya.
- Pengait – setiap kali suatu kejadian terjadi, lakukan sesuatu.
- Fungsi parser – membuat perintah baru seperti:
{{#if:...|...|...}}
. - Kulit – mengubah tampilan dan rasa MediaWiki.
- Halaman khusus – membuat halaman istimewa baru.
- Tag extensions – membuat tag baru seperti:
<newtag>...</newtag>
. - Extending wiki markup – menambahkan hook parser untuk mengubah konten teks wiki.
Bantuan bagi penulis ekstensi
- Manual:Mengembangkan ekstensi – panduan mengembangkan ekstensi.
- Extensions FAQ
- Lihat Kategori:Ekstensi , untuk melihat daftar ekstensi.
- Extension:BoilerPlate - templat ekstensi kosong.
Bantuan untuk pengembang kulit
- Manual:How to make a MediaWiki skin – instruksi cara membuat kulit untuk MediaWiki.
- Manual:Skin configuration – panduan mengonfigurasi kulit untuk suatu wiki.
Bantuan untuk penggunaan ulang kode pustaka
- Manual:Developing libraries – panduan memaketkan pustaka pihak ketiga untuk digunakan dengan MediaWiki
Catatan
- ↑ Tidak semua MediaWiki ditulis dengan PHP. Beberapa alat dukungan ditulis dalam bahasa lain, termasuk berkas tumpak, skrip shell, makefile dan Python.
- ↑ MediaWiki berjalan di kebanyakan platform yang mendukung PHP, tetapi, ketidakberadaan utilitas atau fitur sistem operasi tertentu bisa membatasi fungsionalitas atau performa MediaWiki di platform non-LAMP.
- ↑ MediaWiki punya dukungan untuk DBMS selain MySQL dan MariaDB, termasuk PostgreSQL dan SQLite.
- ↑ Para pengembang merupakan gabungan sukarelawan dan staf (atau kontraktor) yang dibayar dari berbagai organisasi. Untuk daftar lengkap orang yang mengerjakan kode MediaWiki, bacalah artikel Pengembang .
- ↑ Telusuri kode sumber dan revisi repositori kode di Gerrit atau unduh kode sumber ke sistem Anda menggunakan Gerrit .