Manuel:Extension registration/Limitations

This page is a translated version of the page Manual:Extension registration/Limitations and the translation is 100% complete.

L'enregistrement des extensions n'a pas de limitations connues qui pourraient le rendre non adapté pour convertir immédiatement votre extension. Certaines sont intentionnelles, et d'autres attendent juste un développeur pour les mettre en œuvre :) Si vous rencontrez une opération que vous ne pouvez pas réaliser, remplissez un rapport de bogue pour cela dans le projet MediaWiki-Configuration de Phabricator.

  • Paramètres de configuration doivent avoir le préfixe wg résolu, utiliser une clé magique _prefix: phab:T97186
  • les constantes PHP ne sont pas prises en charge. De telles constantes peuvent soit être utilisées pour les paramètres de LocalSettings.php, ou simplement dans le code de l'extension. Si c'est le dernier cas, vous devez utiliser les constantes de classe à la place; celles-ci sont supérieures pour la même raison que les variables de classe sont meilleures que les variables globales. Si c'est le premier cas, vous ne pouvez malheureusement pas utiliser ni les constantes globales ni les constantes de classe: les constantes globales ne peuvent pas être configurées dans extension.json, et les constantes de classe seront initialisées trop tard pour être utilisables. A la place vous devez utiliser des chaînes pures telles que 'medium' au lieu de ANIMATION_SPEED_MEDIUM ou AnimationExtension::SPEED_MEDIUM. Un avantage de cette approche est que, si les extensions sont configurées via une base de données de configuration (il existe un plan à long terme pour que cela se produise), les chaînes seront plus faciles à manipuler que les constantes entières.
  • Vous ne pouvez pas utiliser les chemins des fichiers dans extension.json - phab:T100956
  • les espaces de noms conditionnels ne sont pas pris en charge : phab:T141604
  • $wgRestrictionLevels n'est pas disponible.

La solution de contournement dans la plupart des cas est d'utiliser l'enregistrement personnalisé. Si vous rencontrez un cas que vous ne pouvez pas résoudre, créez une tâche associée dans Phabricator.