Aller au contenu principal
Version: Canary 🚧

👨🏽‍🔧 Configuration

Introduction​

Dans Bow Framework, tous les fichiers de configuration sont centralisés dans le dossier config. Chaque fichier est bien documenté, ce qui vous permet de comprendre facilement les options disponibles et de les adapter à vos besoins.

Configuration​

Bow fournit un helper pratique nommé config pour accéder et modifier les options de configuration. Ce helper utilise un système de notation à point qui simplifie la navigation dans les fichiers de configuration.

Récupérer une valeur​

Voici comment récupérer une valeur d'un fichier de configuration :

echo config('app.public_path');

Modifier une valeur​

Vous pouvez aussi modifier une valeur directement dans le code :

config('view.engine', 'twig');
config('view.extension', '.twig');

Explication de la notation à point​

La notation à point permet d'accéder facilement aux valeurs dans les fichiers de configuration. Le premier segment de la notation correspond au nom du fichier, et les segments suivants accèdent aux clés ou sous-clés d'un tableau.

Exemple​

Supposons que vous avez un fichier bow.php avec le contenu suivant :

return [
'name' => 'Bow',
'skill' => [
'level' => 'easiest',
'orm' => true,
'preset' => [
'reactjs', 'vue'
]
]
];

Avec config, vous pouvez accéder aux différentes valeurs :

config('bow.name'); // Retourne "Bow"
config('bow'); // Retourne tout le tableau
config('bow.skill.orm'); // Retourne true
config('bow.skill.preset.0'); // Retourne "reactjs"

Astuce : Le premier segment de la notation correspond toujours au nom du fichier de configuration (dans cet exemple, bow).

Fichier .env.json​

Pour adapter votre application à différents environnements (développement, production, etc.), Bow utilise un fichier de configuration spécifique : .env.json. Ce fichier contient des paramètres sensibles ou variables selon l'environnement, comme les clés d'API ou les paramètres de base de données.

Pourquoi utiliser .env.json ?​

  1. Sécurité : Ce fichier ne doit pas être versionné pour éviter d'exposer des informations sensibles.
  2. Flexibilité : Chaque développeur ou serveur peut avoir une configuration personnalisée.

Pour aider les nouveaux développeurs, vous pouvez créer un fichier de base : .env.example.json, qui servira de modèle pour configurer leur propre environnement.

Récupérer des informations depuis .env.json​

Toutes les variables définies dans .env.json sont automatiquement chargées lorsque l’application est exécutée. Pour y accéder dans vos fichiers de configuration, utilisez le helper app_env.

Exemple simple​

'database' => app_env('DB_HOSTNAME'),

Si la variable n’est pas définie, app_env retournera null. Vous pouvez également fournir une valeur par défaut :

'database' => app_env('DB_HOSTNAME', 'localhost'),

Utilisation de valeurs imbriquées​

Le fichier .env.json supporte des objets imbriqués. Voici un exemple :

{
"WEBHOOK_GATEWAY": {
"VISA": "http://localhost:8080/execute-visa-webhook",
"MASTERCARD": "http://localhost:8080/execute-mastercard-webhook"
}
}

Pour accéder à ces valeurs :

echo app_env('WEBHOOK_GATEWAY.VISA');
// Retourne : http://localhost:8080/execute-visa-webhook

Réutiliser des variables​

Vous pouvez réutiliser une variable déjà définie dans le fichier .env.json avec la syntax ${KEY}:

{
"APP_URL": "http://localhost:8080",
"WEBHOOK_GATEWAY": {
"VISA": "${APP_URL}/execute-visa-webhook",
"MASTERCARD": "${APP_URL}/execute-mastercard-webhook"
}
}
remarque

Ici ${APP_URL} défini la variable

Cela permet de centraliser certaines valeurs pour plus de cohérence :

echo app_env('WEBHOOK_GATEWAY.VISA');
// Retourne : http://localhost:8080/execute-visa-webhook

Helpers​

Bow inclut de nombreuses fonctions PHP pratiques appelées "helpers". Ces fonctions sont utilisées par le framework pour simplifier les opérations courantes. Vous pouvez également les utiliser dans vos projets.

Personnalisation des helpers​

Dans le fichier config/helpers.php, vous trouverez des helpers supplémentaires qui ne sont pas directement intégrés au framework. Vous pouvez modifier ce fichier pour y ajouter vos propres fonctions personnalisées afin de répondre aux besoins spécifiques de votre application.

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.