logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Le principal moyen de définir la connexion à une base de données est le tableau $databases dans settings.php. Comme son nom l’indique, $databases permet de définir plusieurs connexions aux bases de données. Il supporte aussi la définition de plusieurs cibles. La connexion à la base de données n’est pas ouverte (l’objet connexion n’est pas créé) tant que le premier morceau de code n’essaie pas d’exécuter une requête sur cette base de données.

Clé de connexion

$databases['default'] // La connexion à la base de données.

La clé de connexion est un identifiant unique pour cette connexion à la base de données. La clé doit être unique pour ce site, et il doit toujours y avoir une connexion par défaut, qui sera la base de données principale de Drupal. Sur la plupart des sites, ce sera la seule connexion définie.

Cible

$databases['default']['default'] // La cible de la base de données.

Chaque clé de connexion doit avoir une ou plusieurs cibles. Une cible est une base de données que l’on peut utiliser si elle est disponible. La cible « default » doit toujours être définie pour chaque clé de connexion. Si la cible demandée n’est pas définie, le système revient automatiquement à la cible « default ».

L’usage principal des cibles est pour la réplication primaire / répliques. La cible par défaut est le serveur SQL principal. Ensuite, une ou plusieurs cibles « replica » peuvent être définies (notez que dans certaines situations, « replica » est la seule cible alternative permise, par exemple dans les requêtes statiques). Les requêtes marquées pour utiliser un serveur de réplication, si disponible, tenteront d’accéder à la cible « replica ». Si elle est disponible, cette connexion sera ouverte (si ce n’est pas déjà fait) et la requête sera lancée sur le serveur de réplication. Sinon, la requête s’exécutera sur le serveur « master » (principal). Cela fournit un mécanisme de secours transparent, permettant d’écrire le code pour profiter du serveur de réplication si disponible, tout en continuant à fonctionner sans modification s’il ne l’est pas.

Syntaxe de $databases

Le tableau $databases est un tableau imbriqué d’au moins trois niveaux. Le premier niveau définit les clés de bases de données. Le second définit les cibles. La valeur de chaque cible est l’information de connexion pour cette clé/cible. Quelques exemples éclairciront cela.

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'localhost',
);

Le tableau ci-dessus définit une clé de connexion « default » avec une cible « default ». Cette connexion utilise une base MySQL (clé « driver ») sur l’hôte local avec le nom de base de données « drupaldb », l’utilisateur « username » et le mot de passe « secret ». Cet exemple est typique d’une installation Drupal avec un seul serveur SQL et suffira pour la grande majorité des sites.

Pour une configuration primaire / réplique, on peut définir :

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb1',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
);
$databases['default']['replica'][] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb2',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver2',
);
$databases['default']['replica'][] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb3',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver3',
);

Cette définition fournit un serveur « default » et deux serveurs « replica ». Notez que la clé « replica » est un tableau. Si une cible est définie comme un tableau de connexions, un des serveurs définis sera choisi aléatoirement pour cette cible à chaque requête de page. Ainsi, lors de la requête d’une page, toutes les requêtes vers les réplicas iront sur dbserver2, puis à la requête suivante, sur dbserver3, etc.

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb1',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
);
$databases['extra']['default'] = array(
  'driver' => 'sqlite',
  'database' => 'files/extradb.sqlite',
);

Cette configuration définit une base de données principale Drupal et une base supplémentaire nommée « extra » utilisant SQLite. Notez que la structure de connexion SQLite est différente de celle de MySQL. Chaque pilote peut avoir une configuration différente selon ses besoins.

Gardez à l’esprit que peu importe le nombre de connexions définies, Drupal n’ouvrira la connexion qu’au moment où elle sera utilisée effectivement.

PDO requis

Puisque la bibliothèque PHP PDO est maintenant requise pour le niveau base de données Drupal, vous devez disposer d’un hébergement qui la supporte pour exécuter Drupal.

Options PDO

Les options PDO et les options PDO spécifiques au pilote peuvent être spécifiées dans le tableau de base de données avec la clé pdo, par exemple :

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
  'pdo' => array(PDO::ATTR_TIMEOUT => 2.0, PDO::MYSQL_ATTR_COMPRESS => 1),
);