Fichier de configuration
Lors de la création d'une extension avec la commande php artisan clientxcms:create-extension
, la structure de base est générée et deux fichiers de configuration sont automatiquement générés : addon.json
et composer.json
.
Fichier addon.json
Le fichier addon.json
est utilisé par le CMS pour enregistrer les métadonnées spécifiques de l'extension. Voici un exemple de configuration de ce fichier :
{
"name": "Fund",
"description": "Fund",
"uuid": "fund",
"version": "1.0",
"author": {
"name": "MartinDev",
"email": "[email protected]"
},
"providers": [
"App\\Addons\\Fund\\FundServiceProvider"
]
}
- name : Le nom de l'extension.
- description : Une courte description de l'extension.
- uuid : Un identifiant unique pour l'extension. Il est impératif que cet UUID soit unique afin d'éviter tout conflit entre extensions.
- version : Version actuelle de l'extension.
- author : Informations sur l'auteur de l'extension, avec son nom et son adresse email.
- providers : Une liste des Service Providers de l'extension.
- thumbnail : URL vers le logo de l’extension.
Fichier composer.json
Le fichier composer.json
est utilisé par Composer pour gérer les dépendances de l'extension et pour l'autoloading des classes PHP. Voici un exemple de configuration de ce fichier :
{
"name": "clientxcms/Fund",
"description": "Fund",
"type": "clientxcms-addon",
"require": {
"php": ">=8.0"
},
"config": {
"optimize-autoloader": true,
"platform-check": false
},
"autoload": {
"psr-4": {
"App\\Addons\\Fund\\": "src/",
"App\\Addons\\Fund\\Database\\Seeders\\": "database/seeders/"
}
}
}
- name : Le nom complet de l'extension.
- description : Une courte description de l'extension.
- type : Définit le type d'extension.
- require : Liste des dépendances minimales requises, par exemple la version PHP minimale (
>=8.0
). - config : Configuration Composer additionnelle. Ici,
optimize-autoloader
est activé pour optimiser le chargement automatique des classes etplatform-check
est désactivé pour éviter les vérifications de compatibilité de la plateforme. - autoload : Définit la stratégie d'autoloading, en spécifiant le namespace de l'extension (
App\\Addons\\Fund\\
) et le dossier source correspondant (src/
).