Base de données

La classe DAO est en charge des opérations de chargement et de persistance des modèles :

Connexion à la base de données

Vérifiez que les paramètres de connexion à la base de données sont correctement renseignés dans le fichier de configuration :

Ubiquity config -f=database
../_images/db-config.png

Connexion transparente

Depuis Ubiquity 2.3.0, la connexion à la base de données se fait automatiquement à la première requête :

use Ubiquity\orm\DAO;

$firstUser=DAO::getById(User::class,1);//Automatically start the database

C’est le cas de toutes les méthodes de la classe DAO utilisées pour effectuer des opérations CRUD.

Connexion explicite

Dans certains cas, cependant, il peut être utile d’établir une connexion explicite à la base de données, notamment pour vérifier la connexion.

use Ubiquity\orm\DAO;
use Ubiquity\controllers\Startup;
...
try{
    $config=\Ubiquity\controllers\Startup::getConfig();
    DAO::startDatabase($config);
    $users=DAO::getAll(User::class,'');
}catch(Exception $e){
    echo $e->getMessage();
}

Connexions multiples

Ajout d’une nouvelle connexion

Ubiquity vous permet de gérer plusieurs connexions à des bases de données.

Avec les webtools

Dans la partie Modèles, choisissez le bouton Add new connection :

../_images/add-new-co-btn.png

Définir les paramètres de configuration de la connexion :

../_images/new-co.png

Générer des modèles pour la nouvelle connexion:
Les modèles générés incluent l’annotation @database ou l’attribut Database mentionnant leur lien avec la connexion.

<?php
namespace models\tests;
use Ubiquity\attributes\items\Database;
use Ubiquity\attributes\items\Table;

#[Database('tests')]
#[Table('groupe')]
class Groupe{
    ...
}

Les modèles sont générés dans un sous-dossier de models.

Avec plusieurs connexions, n’oubliez pas d’ajouter la ligne suivante au fichier services.php :

\Ubiquity\orm\DAO::start();

La méthode start effectue la correspondance entre chaque modèle et la connexion associée.