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
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 :
Définir les paramètres de configuration de la connexion :
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{
...
}
<?php
namespace models\tests;
/**
* @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.