3. Gestion des models¶
Gestion des models
Comme préciseé dans la partie 1.b.3, les modèles sont des classes d’accès aux informations d’une base de données.
3.1. Création Models¶
Les models doivent être créées dans un répertoire model
qui se trouve dans
le dossier src
.
3.2. Définition du code des models¶
3.2.1. Héritage¶
Chaque modéle que vous créez doit hériter de la super class controller
du
framework.
Attention
Ne pas oublier d’effectuer l’héritage entre constructeurs.
<?php
namespace src/model;
use libs/system/Model;
class TestDB extends Model{
public function __construct(){
parent::__construct();
//Appel du model grace au systeme autoloading
}
}
?>
3.2.2. Chargement des models dans un controller¶
Suivant l’espace de nom, utiliser le mot clé USE
.
<?php
use libs\system\Controller;
use src\entities\Test as TestEntity;
use src\model\TestDB;
class Test extends Controller{
public function __construct(){
parent::__construct();
//Appel du model grace au systeme autoloading
}
?>
3.2.3. Exécution d’une requete SQL dans le model¶
Utiliser $this->db
pour éxecuter toutes les requêtes SQL
<?php
/**
* @param $ID
* @return mixed|null
*/
public function getTest($ID)
{
$sql = "SELECT *
FROM test
WHERE test.ID = ".$ID;
if($this->db != null)
{
return $this->db->query($sql)->fetch();
}else{
return null;
}
}
?>
3.2.4. Utilisation d’un modèle dans les controller¶
Vous devez l’instancier
<?php
/**
* @param $id
*/
public function get($id){
//Instanciation du model
$tdb = new TestDB();
$data['test'] = $tdb->getTest($id);
return $this->view->load("test/get", $data);
}
?>