A l'heure actuelle, Stato ne peut fonctionner qu'avec MySQL. Des pilotes pour PostgreSQL et SQLLite sont toutefois en cours de développement.
2 pilotes sont disponibles pour MySQL : le premier utilise l'extension MySQL standard, le second utilise PDO. Le choix du pilote et la saisie des paramètres de connexion se font dans le fichier conf/database.php :
$config = array ( 'dev' => array ( 'driver' => 'PDOMySql', 'host' => 'localhost', 'user' => 'root', 'pass' => '', 'dbname' => 'myproject' ), 'prod' => array ( 'driver' => 'MySql', 'host' => 'localhost', 'user' => 'root', 'pass' => '', 'dbname' => 'myproject' ), 'test' => array ( 'driver' => 'PDOMySql', 'host' => 'localhost', 'user' => 'root', 'pass' => '', 'dbname' => 'test_stato' ) ); return $config;
Remarque importante : Lorsqu'une requête est exécutée avec PDO, vous ne pouvez pas faire une nouvelle requête sans avoir récupéré tous les enregistrements retournés par la première. Cela peut poser problème avec Stato, notamment si vous souhaitez afficher des propriétés d'un objet associé à l'objet courant : (voir la méthode includes() de SQuerySet)
foreach (Post::$objects->all() as $post) { echo 'Titre: '.$post->title; echo 'Author: '.$post->author->name; echo 'Last comment on: '.$post->comments->first()->created_on; }
Toutefois, le pilote PDO pour MySQL permet d'activer les requêtes bufférisées de MySQL, vous n'aurez donc pas ce problème avec les pilotes MySQL de Stato.