Geliştirici merkezi
Bu, MediaWiki geliştiricilerinin kullanabileceği temel belgelere, kaynaklara ve araçlara bağlantılar içeren MediaWiki geliştirmesine üst düzey bir genel bakışdır. MediaWiki kullanma deneyimi olan yetenekli LAMP geliştiricileri için yazılmıştır.
- Wikimedia web API'lerini kullanmak istiyorsanız, Developer Portal adresini ziyaret edin.
- Wikimedia yazılımının geliştirilmesine katkıda bulunmak istiyorsanız, New Developers sayfasına bakın.
- MediaWiki ve MediaWiki uzantılarını geliştirmeye yönelik tanıtım rehberi için sayfasına okuyun.
- Diğer üçüncü taraf MediaWiki kullanıcılarıyla işbirliği yapmak istiyorsanız, MediaWiki Paydaşlar Grubu (MWStake), MediaWiki geliştiricilerinden, sistem yöneticilerinden, kullanıcılardan, danışmanlardan ve barındırma sağlayıcılarından oluşan bir MediaWiki kullanıcı grubudur.
Genel bakış
MediaWiki, tüm dünyadaki Vikipedi'ye, kardeş projelerine ve binlerce vikiye güç sağlayan yazılımdır.
MediaWiki PHP programlama dilinde yazılmıştır.[1]. İstemci JavaScript kütüphanesi olarak jQuery'yi kullanır.
MediaWiki, öncelikle LAMP platformu için yazılmıştır [2] ve çoğu işletim sisteminde çalışır. MediaWiki öncelikle MySQL ve MariaDB veritabanı sunucularını kullanır.[3]
Geliştirme açık kaynak tarzında gerçekleşir,[4] gönüllü topluluk geliştiricileri de büyük bir rol oynar, ancak büyük ölçüde çevrimiçi olarak koordine edilir ve Wikimedia Vakfı tarafından desteklenir.
- Geliştirme tartışması çeşitli posta gönderme listeleri ve IRC kanallarında MediaWiki üzerinde gerçekleşir. Ana geliştirici listesi wikitech-l olur. Ana geliştirici IRC kanalı #mediawiki bağlan olur.
- Kaynak kodu Git sürüm kontrol sistemi kullanılarak yönetilir.[5]
- Kod inceleme çoğu proje için Gerrit ile gerçekleştirildi. Bu öğreticiyi izleyin yamaları göndermek için Git ve Gerrit'i ayarlamak üzere.
- Hata raporları ve çoğu projenin görevleri Phabricator üzerinde yönetiliyor.
- MediaWiki'yi genişleten veya bunlarla etkileşime giren geliştiricilerin (temel kod üzerinde çalışmak yerine) API, Kancalar sistemi ve Görünümler genel bakış için bu sayfanın #MediaWiki'yi genişletme bölümüne bakın.
Anahtar belgeleri
Kod, geliştirme ve stil
- Geliştirme politikası – temel geliştirme politikalarına genel bakış.
- Kodlama kuralları - MediaWiki tarzında kod yazmayı öğrenin.
- Security for developers – MediaWiki’yi güvende tutmaya nasıl yardımcı olacağınızı öğrenin.
- Manual:Pre-commit checklist – kod vermeden önce bu kontrol listesini okuyun.
- Kod inceleme kılavuzu – MediaWiki kaynak koduna bağlılıklarını gözden geçirenler için kılavuz.
- Technical Decision Making Process – daha büyük teknik değişiklikler yapmaya karar verme süreci hakkında bilgi edinin.
Hata ayıklama ve test etme
- Hata ayıklama – MediaWiki hata ayıklama kılavuzu.
- Manual:Errors and symptoms – sık karşılaşılan MediaWiki hatalarına ve bunların ilişkili semptomlarına genel bir bakış.
- Tarayıcı testi – Selenium kullanarak MediaWiki için UI testleri yazmayı öğrenir.
- Birim testi – PHPUnit kullanarak MediaWiki için birim testleri yazmayı öğrenir.
- API entegrasyon testleri – Mocha kullanarak MediaWiki için API entegrasyon testleri yazmayı öğrenir.
- Security for developers – güvenli kod yazmayı öğrenir.
Mimari
- MediaWiki architecture – MediaWiki mimarisine giriş.
- Manual:Code – MediaWiki'nin kaynak kodunun önemli bölümlerine genel bakış.
- Manual:Database layout – MediaWiki'nin veritabanı şemalarına genel bakış.
- Manual:Global object variables – anahtar küresel değişkenlerin kısmi bir listesi.
- Yerelleştirme – MediaWiki'nin uluslararasılaşma sistemi hakkında bilgi edinin.
- Bu vikide Manual ad alanı – geliştiriciler için belgeler.
- MediaWiki Sınıf Kaynağı – MediaWiki kaynak kodundan oluşturulan teknik belgeler. (Not: Sınıf kaynağı büyük, yavaş yüklenen bir sayfadır.)
Alt sistemleri
- API – MediaWiki'nin API'si, MediaWiki veritabanlarında bulunan verilere doğrudan ve yüksek düzeyde erişim sağlar.
- ContentHandler – MediaWiki'nin özel sayfa içeriği türlerini destekleme çerçevesi.
- Database access – veritabanı soyutlama katmanına ilişkin kısa bir kılavuz da dahil olmak üzere, MediaWiki'de veritabanlarının kullanımına genel bakış.
- İş kuyruğu – MediaWiki'nin uzun süren görevleri eşzamansız olarak işleme çerçevesi.
- Messages API – MediaWiki'nin PHP veya JavaScript ile yerelleştirilmiş uygulama mesajları sağlama çerçevesi.
MediaWiki'yi genişletme
MediaWiki, "temel kod" değiştirilmeden değişiklik yapılmasına izin verecek şekilde tasarlanmıştır. Bu, eski uzantı kodu değişikliklerini manüel olarak birleştirmek zorunda kalmadan MediaWiki'nin yeni bir sürümüne güncellenmeyi kolaylaştırır. Geliştiricilerin MediaWiki'nin yapabileceklerini değiştirmelerine veya genişletmelerine olanak tanıyan altı ana uzantı noktası vardır. Uzantı noktaları:
- API – web API'si üzerinden MediaWiki örneklerinin verilerine ve meta verilerine erişin.
- Hooks – her etkinlik gerçekleştiğinde bir şeyler yapın.
- Ayrıştırıcı işlevleri – şunun gibi yeni bir komut oluşturun:
{{#if:...|...|...}}
. - Skins – MediaWiki'nin görünümünü ve hissini değiştirin.
- Special pages – yeni bir özel sayfa ekleyin.
- Etiket uzantıları – şunun gibi yeni bir etiket oluşturun:
<newtag>...</newtag>
. - Extending wiki markup – vikimetin içeriğini değiştirmek için bir ayrıştırıcı kancası ekleyin.
Yardım uzantı geliştiricileri
- Manual:Developing extensions – uzantıları geliştirme kılavuzu.
- Extensions FAQ
- Uzantıların listesi için Kategori:Uzantılar sayfasına bakın.
- Extension:BoilerPlate - boş bir uzantı şablonu.
Yardım görünüm geliştiricileri
- Manual:How to make a MediaWiki skin – MediaWiki için nasıl görünüm oluşturulacağıyla ilgili talimatlar.
- Manual:Skin configuration – bir viki için görünümleri yapılandırma kılavuzu.
Kütüphane kodunun yeniden kullanımı için yardım
- Manual:Developing libraries – MediaWiki ile kullanılmak üzere üçüncü taraf kitaplıklarını paketleme kılavuzu
Notlar
- ↑ MediaWiki’nin tamamı PHP ile yazılmamıştır. Bazı destek araçları, toplu iş dosyası, kabuk komutları, makefiles ve Python gibi diğer dillerde yazılmıştır.
- ↑ MediaWiki, PHP'yi destekleyen çoğu platformda çalışır, ancak, bazı yardımcı programların veya işletim sistemi özelliklerinin eksikliği, işlevselliklerini veya performanslarını sınırlayabilir. LAMP dışı platformlarda MediaWiki.
- ↑ MediaWiki MySQL ve MariaDB dışındaki Veritabanı desteği var, PostgreSQL ve SQLite dahil.
- ↑ Geliştiriciler, çeşitli kuruluşlar için gönüllülerin ve ücretli personelin (veya müteahhitlerin) bir karışımıdır. MediaWiki kodunda çalışanların tam listesi için, Geliştiriciler maddesini okuyun.
- ↑ Kaynak kodunu ve kod depolarının revizyonlarını $1 adresinden tarayın veya kaynak kodunu Gerrit kullanarak sisteminize indirin.