Le fichier settings.php joue un rôle central dans la configuration de plateformes web. Comprendre son utilité et maîtriser l’utilisation des variables en PHP permettent de structurer le code de manière sécurisée et maintenable.
Dans cet article, nous allons revenir sur l’importance de stocker des variables dans le fichier settings.php et sur quelques cas pratiques pour faciliter sa compréhension. Nous finirons avec une liste de bonnes pratiques pour vous permettre d’exploiter au mieux ce fichier.
Qu’est-ce que le fichier settings.php ?
Dans un projet Drupal, le fichier settings.php est considéré comme l'un des fichiers les plus cruciaux pour la configuration d'un site web. Généralement, ce fichier est localisé dans le répertoire sites/default/ et sert à déterminer des réglages pour rendre le site le plus optimisé possible. Ce document regroupe essentiellement des données de liaison à la base de données, mais également des options avancées comme la gestion des caches, les réglages pour cookies, les paramètres d'erreur et bien d'autres.
Pourquoi stocker des variables dans le fichier settings.php ?
Dans le cadre d'un projet Drupal, on est amené à gérer des variables globales ou bien des configurations qui doivent être sécurisées. Ces variables peuvent être des clés API ou des informations de connexion spécifiques.
Plusieurs bénéfices découlent du stockage de ces variables dans le fichier settings.php :
- Centralisation des configurations : Cela facilite la gestion et les changements en un seul point, permettant une centralisation de toutes les variables.
- Sécurité : settings.php est délivré de la vue du public (par le biais de réglages.htaccess, par exemple) et autorise la sauvegarde d'informations cruciales, comme les clés API ou les informations de connexion, hors du code qui est généralement consultable.
- Facile d'accès et de modification : Les variables conservées dans settings.php peuvent être facilement modifiées dans le code, ce qui permet d'éviter la nécessité de consulter la base de données ou d'autres configurations pour des ajustements légers.
Ci-dessous, nous allons vous montrer un exemple d’utilisation des 2 types de stockage : le settings.php et les fichiers de configuration.
Exemple de stockage de variables dans settings.php
Cas pratique : utilisation d’une clé API
Imaginons que vous ayez un site qui utilise une API externe de google maps pour afficher des cartes. Vous devez conserver la clé API de manière sécurisée.
Voici comment vous pouvez définir ces variables dans settings.php :
// Dans le fichier settings.php
// Clé API pour le service de météo
$config[‘styled_google_map.settings’[styled_google_map_apikey]=’VOTRE_CLE_API’
Grâce à ce système, vous n'avez pas besoin de définir la clé styled_google_map_apikey directement dans le module ou de modifier son fichier de configuration YAML. Drupal fusionne et applique automatiquement les valeurs en fonction de la hiérarchie de configuration, où settings.php a priorité.
Cas pratique : Configurer un serveur SMTP
Qu’est-ce qu’un serveur SMTP ?
SMTP, ou Simple Mail Transfer Protocol, est le protocole standard utilisé pour l’envoi d’e-mails sur Internet. Un serveur SMTP est donc un service qui permet aux applications et sites web d’envoyer des e-mails de manière sécurisée. Dans Drupal, la configuration d’un serveur SMTP est souvent utilisée pour envoyer des notifications, des newsletters, ou encore des alertes système.
Les paramètres SMTP incluent généralement l’adresse du serveur SMTP (smtp_host), le port (smtp_port), le protocole de sécurité (smtp_protocol) ainsi que les informations de connexion telles que le nom d’utilisateur et le mot de passe.
Exemple de configuration SMTP dans settings.php
$config['smtp.settings']['smtp_host'] = 'smtp.votre_serveur.com'; // Remplacez par votre serveur SMTP
$config['smtp.settings']['smtp_port'] = '587'; // Port SMTP, généralement 587 pour TLS ou 465 pour SSL
$config['smtp.settings']['smtp_from'] = 'contact@votre_domaine.com'; // Adresse de l'expéditeur $config['smtp.settings']['smtp_protocol'] = 'tls'; // Protocole de sécurité : 'ssl', 'tls' ou '' (aucun)
$config['smtp.settings']['smtp_debugging'] = FALSE; // Activez TRUE pour le débogage, FALSE sinon
$config['smtp.settings']['smtp_fromname'] = 'Nom de l\'expéditeur'; // Nom affiché de l'expéditeur
$config['smtp.settings']['smtp_username'] = 'votre_nom_utilisateur'; // Nom d'utilisateur SMTP
$config['smtp.settings']['smtp_password'] = 'votre_mot_de_passe'; // Mot de passe SMTP
Dès l'enregistrement de cette configuration dans settings.php, votre site Drupal devrait automatiquement exploiter ces réglages pour envoyer des courriers, particulièrement si vous optez pour un module SMTP comme SMTP Authentication Support. Veillez à activer ce module, car par défaut, Drupal ne procède pas à l'envoi d'e-mails via SMTP.
Exemple de stockage de variables dans les fichiers de configuration
Il est possible de stocker une clé API Google Maps directement via le Back-office de votre site Drupal. Cette méthode permet de saisir ou de modifier la clé API à tout moment sans avoir à accéder au fichier settings.php ou aux fichiers de configuration YAML. Exemple ci-dessous
Vous pouvez exporter cette configuration à travers la commande “drush cex” et vous allez avoir le fichier “styled_google_map.settings.yml”
Précautions et bonnes pratiques
Un stockage de variables dans le fichier settings.php nécessite quelques précautions et de bonnes pratiques à adopter pour en garantir la sécurité. Voici donc quelques recommandations clés pour optimiser l’utilisation du fichier seetings.php tout en facilitant la collaboration entre développeurs.
- Ne conservez pas de données trop sensibles : Malgré la protection de settings.php, il est toujours conseillé de ne pas conserver d'informations particulièrement privées.
- Utilisez-le surtout pour les ajustements indispensables au bon déroulement de l'application.
- Optez pour des appellations claires pour les variables : Veillez à ce que les appellations des variables soient claires et décrivent précisément leur utilisation.
- Instructions et remarques : Commentez chaque variable définie, en expliquant son rôle et les raisons de son utilisation, afin de simplifier la compréhension pour d'autres programmeurs.
Vous l’aurez donc compris, le fichier settings.php est un outil puissant pour gérer la configuration d’un projet. En centralisant les variables critiques, il permet de garder le code organisé, sécurisé et plus facilement adaptable.
Ajouter un commentaire