Manual:Extension registration/fr

L’enregistrement d’extensions est le mécanisme utilisé par MediaWiki pour charger les extensions et les habillages. La configuration nécessaire à MediaWiki pour enregistrer les extensions (respectivement les habillages) est stockée dans une fichier  (resp.  ) placé dans le dossier racine des extensions (resp. des habillages).

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). This must be done before you load any extensions or skins.

or if you want to do it within one line:

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 :

Retaining 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. As a workaround, 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: You can also document configuration on-wiki in your Extension:MyExtension page, and in a README file in the extension's repository.

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 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 skin 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.
 * Manual:Developing extensions et décrivent l’ancienne approche de déclaration des informations des extensions dans les variables et le code PHP
 * Known limitations
 * Overview of architecture
 * docs/extension.schema.json</tt> is the schema for  (and skin.json). there is a tool that generates documentation from this.
 * RfC about implementing extension registration