Manual:Extension registration/fr

L’enregistrement d’extensions est le mécanisme utilisé par MediaWiki pour charger les extensions et les habillages. You put configuration data in a file named  or   in the root directory of your extension or skin, and MediaWiki uses this to register extensions and skins.

Avant la version 1.25 de MediaWiki, la configuration des extensions et des habillages était réalisée en PHP dans un fichier portant le nom de l’extension ou de l’habillage, par exemple  ou. Cette méthode est obsolète et les développeurs d’extensions ou d’habillages devrait commencer une transition vers le nouveau format.

Migrer, pour les administrateurs système
Auparavant, votre fichier LocalSettings.php aurait inclus quelque chose comme :

Cela peut être converti en :

Si vous conservez vos extensions dans un endroit autre que $IP/extensions, vous devez modifier. Si vos habillages ne sont pas situés dans le dossier $IP/skins, vous devez modifier la variable (mal nommée). Cela doit être fait avant tout chargement d’extension ou d’habillage.

ou, en une seule ligne :

Migrer, pour les développeurs d’extensions
Le script maintenance/convertExtensionToRegistration.php vous aide à migrer vos points d’entrée PHP en un fichier de métadonnées JSON. Si votre extension supporte d’anciennes versions de MediaWiki, vous pouvez garder votre point d’entrée PHP FooBar/FooBar.php jusqu’à ce que vous retiriez le support pour ces anciennes versions.

Exemples de ligne de commande :

Vous pourriez avoir besoin de désinstaller votre extension dans LocalSettings.php si vous avez des erreurs disant que des fonctions ou des constantes ne peuvent pas être redéfinies. Vous devriez remplacer votre fichier de point d’entrée PHP (FooBar.php) en quelque chose qui ne casse pas les wikis durant le processus de mise à jour. Si vous avez besoin de garder la compatibilité pre-1.25, retirez la ligne die et conservez l’ancienne configuration en PHP.

Ou, pour les habillages :

Conserver la documentation
PHP entry points usually have some documentation of configuration settings that is useful and shouldn't be lost. Unfortunately JSON doesn't support comments. It is recommended that you transfer configuration documentation to a README file in the extension's repository. You should also document configuration on-wiki in your Extension:MyExtension page. It is possible to include some documentation directly in the extension.json file as well. Extension registration ignores any key in extension.json starting with ' ' in the top-level structure or under, so you can put comments in those parts of the JSON file. For example:

This should only be used for brief notes and comments.

Fonctionnalités
Si vous chargez un grand nombre d’extensions, l’enregistrement d’extensions permettra un gain de performance si vous avez installé APC (ou APCu). Les extensions qui sont chargées ensemble avec  (avec un suffixe -s marquant le pluriel) seront mises en cache ensemble.

Attributs
Un problème récurrent est la façon « d’enregistrer » quelque chose avec une extension. En général, cela signifie que vous avez à charger une extension avant une autre. Par exemple, l’éditeur visuel a  qui permet aux extensions d’ajouter leurs modules. Ainsi, dans le point d’entrée de l’éditeur visuel, il y a :

Cela signifie que si une extension ajoute quelque chose au tableau avant que l’éditeur visuel soit chargé, celui-ci effacera l’entrée dans ce tableau. Quelques extensions dépendent d’un ordre de chargement spécifique, d’autres bricolent quelque chose avec. L’enregistrement d’extensions résoud ce problème avec les « attributs ». Dans l’extension Math, son extension.json</tt> aurait quelque chose comme :

Quand l’éditeur visuel veut accéder à cet attribut, il utilise :

Personnaliser l’enregistrement
Quelques fois, les extensions ont besoin de faire des choses non-standard au cours de l’enregistrement ou font des choses très complexes. Il y a deux fonctionnalités qui peuvent être utilisées dans de tels cas :


 * callbacks

Vous pouvez spécifier une clé 'callback' dans votre extension.json</tt> si vous avez besoin d’exécuter du code PHP. La valeur devrait pouvoir être appelé en PHP, comme. exécutera ce callback après qu’il ait traité le fichier extension.json</tt>.

Et composer.json
Si une extension ou un habillage dépend de bibliothèques, il peut y avoir également un fichier composer.json</tt>, voir les bonnes pratiques pour composer.json. Quelques champs de métadonnées sont les mêmes (discussion dans T89456), dont :
 * et
 * et

Voir aussi

 * Rapportez les bugs dans le projet MediaWiki-Configuration.
 * Old versions of Manual:Developing extensions#Setup (prior to May 2015) and describe the old approach of declaring extension information in PHP code and variables
 * Limitations connues
 * Aperçu de l’architecture
 * Schéma pour  et skin.json : docs/extension.schema.json</tt>. Un outil permet de générer de la documentation à partir de celui-ci.
 * RfC proposant l’implémentation d’un système d’enrgistrement des extensions.