Config
L'attribut Config permet de charger et d'utiliser facilement des fichiers de configuration YAML dans vos contrôleurs, en suivant la convention de configuration d'Elementum.
Utilisation de base
app/Controllers/MyController.php
use Elementum\Attributes\Config; class MyController extends Controller { #[Config('media')] public function configureMedia($config) { // $config contient les données du fichier config/media.yaml // Exemple d'utilisation avec les types MIME $mime_types = []; foreach ($config['supports'] ?? [] as $mime) { if (empty($mime)) continue; $mime_types[$mime] = match($mime) { 'svg' => 'image/svg+xml', 'avif' => 'image/avif', default => "image/{$mime}", }; } if (!empty($mime_types)) { add_filter('upload_mimes', fn($mimes) => array_merge($mimes, $mime_types)); } } }
Structure du fichier de configuration
Les fichiers de configuration doivent être placés dans le dossier config de votre thème ou plugin et utiliser l'extension .yaml :
config/media.yaml
supports: - svg - avif - webp
Paramètres
Paramètre obligatoire
configFile Requis
- Type :
string - Description : Nom du fichier de configuration (sans l'extension .yaml) situé dans le dossier
config - Exemple :
'media'pour chargerconfig/media.yaml
Paramètres optionnels
key
- Type :
string|null - Défaut :
null - Description : Identifiant unique optionnel pour référencer cette configuration
- Exemple :
'media_support'pour un identifiant unique
merge
- Type :
boolean - Défaut :
true - Description : Si
true, fusionne la configuration avec les valeurs existantes. Sifalse, écrase la configuration existante.
Exemples avancés
Accès à une clé spécifique
#[Config('media', key: 'supports')] public function configureMimeTypes($supportedTypes) { // $supportedTypes contient directement le tableau ['svg', 'avif', 'webp'] // ... }
Désactivation de la fusion
#[Config('app', merge: false)] public function configureApp($config) { // Écrase complètement la configuration existante // ... }
Bonnes pratiques
- Organisation : Gardez vos fichiers de configuration organisés par domaine fonctionnel
- Documentation : Commentez vos fichiers de configuration pour expliquer les options disponibles
- Validation : Validez toujours les données de configuration avant utilisation
- Sécurité : Ne stockez jamais d'informations sensibles dans les fichiers de configuration