Developer hub/fr

Ceci est une vue d’ensemble très générale du développement MediaWiki, incluant des liens vers les documents clés, ressources et outils disponibles aux développeurs MediaWiki. Elle est écrite pour les développeurs LAMP qui ont déja expérimenté MediaWiki.


 * Si vous souhaitez « utiliser » les API web de Wikimedia, consultez Web APIs hub (document encore en cours de rédaction).
 * Si vous voulez contribuer au développement du logiciel Wikimedia, voyez New Developers.
 * Pour un guide d'introduction au développement de MediaWiki et des extensions MediaWiki, veuillez vous reporter à la page comment devenir un hacker MediaWiki.
 * Si vous voulez contribuer avec d'autres utilisateurs tiers de MediaWiki, le MediaWiki Stakeholders' Group (MWStake) est un groupe d'utilisateurs MediaWiki constitué de développeurs MediaWiki, d'administrateurs système, d'utilisateurs, de consultants, et de fournisseurs d'hébergement.

Résumé
MediaWiki est le logiciel qui fait tourner Wikipedia, ses projets fères et des milliers de wikis de par le monde.

MediaWiki est écrit dans le langage de programmation PHP. Il utilise jQuery comme bibliothèque client JavaScript.

MediaWiki a d'abord été écrit pour la plateforme LAMP et s'exécute sur la plupart des systèmes d'exploitation. MediaWiki utilisait à l'origine les serveurs de bases de données MySQL et MariaDB.

Le développement se fait dans un style à source ouvert, il est largement coordonné en ligne, et supporté par la Fondation Wikimedia, bien que la communauté des développeurs volontaires joue également un rôle important.


 * Des discussions sur le développement ont lieu sur différentes listes de diffusion et canaux IRC. La principale liste pour développeurs est wikitech-l, et les principaux canaux IRC #mediawiki et #wikimedia-dev.
 * Le code source est géré via le logiciel de gestion de version Git.
 * La revue de code pour la plupart des projets est effectuée sous . Suivez ce tutoriel pour configurer Git et Gerrit afin de soumettre des correctifs.
 * Le signalement de bogues et les tâches de la plupart des projets sont gérées sur Phabricator.
 * Les développeurs qui œuvrent sur les extensions ou sur l’interfaçage avec MediaWiki (au lieu de travailler directement sur le noyau du code) disposent de plusieurs mesures de commodité pour l’extension, comme l'API, les mécanismes d’enclenchement et les habillages – voir la section #Étendre MediaWiki de la présente page pour une vue d’ensemble.

Documents clés


Code, développement et style

 * L’article politique de développement offre une vue d’ensemble des points clés de la politique de développement.
 * Conventions de codage – apprendre à écrire du code dans le style MediaWiki.
 * Le guide sécurité à l’intention des développeurs permet d’apprendre comment garder MediaWiki sécurisé.
 * La , est à lire avant de soumettre votre code.
 * Guide de relecture – un guide pour les relecteurs de code source MediaWiki.
 * Sollicitation de commentaires (RFC) – découvrir ou soumettre de nouvelles fonctionnalités à l'écosystème MediaWiki.

Correction de bogues et tests du code source

 * Comment corriger les bogues – un guide pour la résolution des problèmes dûs au code MediaWiki.
 * Manuel des erreurs et symptômes – une vue d’ensemble des erreurs fréquentes lors des développements avec MediaWiki et corrélation avec leurs symptômes.
 *  – apprendre à écrire des tests d'interface utilisateur pour MediaWiki avec Selenium.
 * Tests unitaires – apprendre à écrire des tests unitaires pour MediaWiki avec PHPUnit.
 *  - apprendre à écrire du code sécurisé.



Architecture

 * Manuel:Code – vue d’ensemble des éléments clés du code source MediaWiki.
 * Couche base de données – résumé des schémas de la base de données MediaWiki.
 * Variables objets globales – une liste partielle de variables globales.
 * Localisation – découvrir le système d'internationalisation de MediaWiki.
 * L’espace de noms Manuel de ce wiki est dédié à la documentation destinée aux développeurs.
 * [//doc.wikimedia.org/mediawiki-core/master/php/ Référence des classes MediaWiki] – documentation technique générée à partir du code source MediaWiki. (Note : la référence des classes est une page lourde et longue à charger.)
 *  – manuels, guides, et collections d'articles sélectionnés.

Sous-systèmes

 * API – l’API Mediawiki fourni un accès haut-niveau et direct aux données contenues dans les bases de donnée Mediawiki.
 *  – l’infrastructure logicielle MediaWiki pour l’intégration de types personnalisés de contenu de page.
 *  – un panorama de l'utilisation des bases de données dans MediaWiki, dont un bref guide sur la couche d’abstraction de la base de données.
 *  – infrastructure logicielle MediaWiki pour lancer des tâches au long cours s’exécutant de façon asynchrone.
 *  – infrastructure logicielle MediaWiki permettant de fournir des messages d'application localisés avec PHP ou JavaScript.

Étendre MediaWiki
Mediawiki a été conçu de façon à ce qu’il puisse être étendu sans avoir à modifier le code de son noyau. Cela facilite les mises-à-jour vers les nouvelles versions de Mediawiki sans nécessiter de fusion manuelle des modifications de code des anciennes extensions.

Il y a six principaux types d'extensions qui permettent aux développeurs d'étendre ou modifier les fonctionnalités de MediaWiki. Ces principaux types sont :


 * API - accède aux données et aux métadonnées des instances MediaWiki via son API web.
 *  - Chaque fois qu’un événement donné se produit, déclencher des actions.
 * Fonctions d’analyse syntaxique - créer une nouvelle commande comme:.
 *  - changer l’apparence et le comportement de MediaWiki.
 * Pages spéciales - Créer une nouvelle page spéciale.
 * Extensions des balises - Créer de nouvelles balises comme:.
 * Etendre le marquage de wiki – ajouter un analyseur de point d'entrée pour modifier le contenu du texte wiki.

Aide pour les développeurs d'extensions

 * Manual:Developing extensions/fr – guide de développement des extensions.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * Voir Category:Extensions, pour la liste exhaustive des extensions.
 * Manual:$wgExtensionFunctions – à utiliser pour différer l’installation des extensions (ou pour exécuter d’autres appels de type callback) tant que l’installation du noyau MediaWiki n'est pas terminée.
 * Extension:BoilerPlate - modèle d'extension vierge.

Aide aux développeurs d’habillages

 * Manual:Skinning Part 1 – instructions expliquant comment créer un habillage MediaWiki.
 * Manual:Skin configuration – guide de configuration des habillages MediaWiki.

Aide sur la réutilisation de bibliothèques de code

 * – un guide sur la création bibliothèques tierces en vue d’une utilisation avec MediaWiki.

Usages de Wikis tiers

 * - pour les wikis d'entreprises
 * - pour les wikis académiques