Un DSN (Data Source Name, nom de source de données) est une chaîne de connexion qui décrit, en une seule ligne, comment joindre un service externe : le protocole, les identifiants, l'hôte et les options. postgresql://user:pass@db:5432/app, redis://cache:6379, smtp://localhost:1025 — un même format compact pour des mondes très différents, qui range toute la configuration d'un canal dans une variable d'environnement.
Changer De Canal Sans Toucher Au Code
La vraie valeur du DSN est l'inversion de configuration : le code lit une variable, l'environnement décide du reste. La même application envoie ses emails par un vrai serveur en production et par un bac à sable en local, écrit dans une base distante ou locale, simplement en changeant une chaîne — jamais une ligne de logique. C'est la base de la portabilité entre environnements.
Un Schéma, Un Transport
Le préfixe d'un DSN — son schéma — désigne l'implémentation à utiliser. Des frameworks comme Symfony exploitent ce mécanisme pour brancher des transports personnalisés : enregistrer un nouveau schéma (api://, par exemple) suffit à router tout un canal vers du code maison, sans que le reste de l'application sache que la plomberie a changé.
Un secret dans un DSN reste un secret : identifiants de base de données ou clés d'API n'ont rien à faire dans un dépôt Git — ils vivent dans des variables d'environnement ou un coffre, jamais en dur.