Developer hub/fr

Ceci est une vue d’ensemble très générale du développement MediaWiki, incluant les liens vers les documents clés, ressources et outils disponibles aux développeurs MediaWiki. Cela s'adresse donc à un public qui a déjà installé MediaWiki (ex : avec LAMP).


 * Si vous souhaitez utiliser les API web de Wikimedia, consultez Web APIs hub (document encore en cours de rédaction).
 * If you want to contribute to developing Wikimedia software, see New Developers.
 * Pour un guide d'introduction au développement de MediaWiki, se reporter à la page "comment devenir un hacker MediaWiki".

Résumé
MediaWiki est développé en open source en utilisant principalement le langage de programmation PHP principalement pour plateforme LAMP. Le développement du noyau est coordonné en ligne. Le développement du noyau (Core) est dans une très large mesure coordonné en ligne.


 * 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 relecture de code est effectuée via, voir ce tutoriel pour mettre en place tout ce qui est nécessaire en vue de proposer des modifications.
 * Bug reports and tasks for most projects are managed on Phabricator.
 * Les développeurs qui œuvre sur des extensions ou sur de l’interfaçage 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 aider à garder MediaWiki sécurisé.
 * La liste des points à vérifer avant toute soumission, est à lire avant de soumettre du code.
 * Guide de relecture – un guide pour les relecteurs de code source MediaWiki.
 * Sollicitation de commentaires – découvrir les procédures de suggestion de fonctionnalités à l'écosystème MediaWiki ou en soumettre une.

Résolution de problématiques et test du code source

 * Comment résoudre les anomalies – un guide pour la résolution des problèmes dus au code MediaWiki.
 * Manuel des erreurs et symptômes – une vue d’ensemble des erreurs fréquentes lors de développements avec MediaWiki et corrélations avec leurs symptômes.
 *  – apprendre à écrire des tests d'interface utilisateur pour MediaWiki avec Selenium.
 * Test unitaires – apprendre à écrire des tests unitaires pour MediaWiki avec PHPUnit.
 *  – les problèmes de sécurité sont remontés à [mailto:security@wikimedia.org security@wikimedia.org].



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 des variables globales les plus importantes.
 * Localisation – découvrir le système d'internationalisation de MediaWiki.
 * L’espace de nom 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.
 * Gestionnaire de contenu – 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 noyau de son code. Cela facilite les mises-à-jour vers des nouvelles versions de Mediawiki sans nécessiter de fusion manuelle des modifications de code dans d’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ès aux données et métadonnées des instances MediaWiki à travers sa puissante API web "Action".
 * Mécanismes de déclenchement - Chaque fois qu’un événement donné se produit, déclencher des réactions.
 * Foncutions d’analyse syntaxique - Créer une nouvelle commande comme:
 * Habillage - 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:

Aide pour les auteurs d'extensions

 * Manual:Developing extensions/fr – guide de développement d'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 exécuter d’autres rétroappels) d’autres après l’installation du noyau MediaWiki.
 * 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