Création d'une extension
Pour créer une nouvelle extension, vous pouvez utiliser la commande artisan suivante :
php artisan clientxcms:create-extension
Lors de l'exécution de cette commande, plusieurs questions vous seront posées, notamment :
- Nom : Le nom de l'extension
- UUID : Un identifiant unique que vous devez fournir. Attention : cet UUID doit être unique.
- Type : Définir si l'extension est un addon ou un module.
- Utilisation des routes : Préciser si l'extension utilise des routes.
- Utilisation des contrôleurs : Indiquer si des contrôleurs sont nécessaires.
- Utilisation d'une base de données : Préciser si l'extension nécessite l'utilisation d'une base de données.
Structure d'un addon
Voici un exemple de la structure d'un addon, basé sur l'extension fund
:
/addons/fund
│
├── lang/
│ ├── en/
│ └── fr/
├── database/
│ ├── migrations/
│ └── seeders/
│
└── views/
│ ├── admin/
│ └── default/
│
├── routes/
│ ├── admin.php
│ └── web.php
│
├── src/
│ ├── Http/
│ └── Models/
│ └── FundServiceProvider.php
│
├── addon.json
└── composer.json
└── permissions.json
- lang/ : Contient les fichiers de traduction pour différentes langues (par exemple, anglais
en
, françaisfr
). - database/ : Contient les migrations, seeders ou factories pour l’extension.
- views/admin : Contient les vues de l’administration de l'extension.
- views/default : Contient les vues de l'extension.
- routes/ : Contient les fichiers de routes spécifiques à l'extension. Les routes d'administration sont définies dans
admin.php
, et les routes publiques dansweb.php
. - src/ : Contient les fichiers principaux de l'extension, tels que les contrôleurs, les modèles, et le service provider (
FundServiceProvider.php
). - addon.json|module.json : Fichier de configuration principal de l'addon/module, contenant les métadonnées et informations nécessaires au CMS pour reconnaître et charger l'extension.
- composer.json : Fichier standard Composer pour la gestion des dépendances de l'extension.
- permissions.json : Fichier contenant les permissions spécifiques à l'extension. Plus d'informations sur les permissions ici.