Sans intégrer un modèle MVC pour l'instant, j'essaye de m'en rapprocher en séparant les couches. j'ai donc 3 fichiers:
Un premier fichier, qui sera visible par le navigateur et que je pourrai appeler 'vue'
<?php
require '../controller/controllerProd.php';
// affichage d'une liste de produits
if (!empty ($_GET['production'])) {
$controlProd->setListe($_GET['production']);
}
?>
...
<div id="content-data">
<table width="100%" border="0" cellpadding="0" cellspacing="0" id="liste-fiches">
...
Un second fichier, qui pourrait être considéré comme un controller...
require '../core/connect.php';
require '../model/ModelProduction.php';
class ControllerProd {
var $modelProduction;
function __construct() {
// Initialise l'objet modelProduction
$this->modelProduction = new ModelProduction($PDO); //$PDO est contenu dans le fichier 'connect.php'
}
/**
* setListe traite la variable et la donne à getListe
*/
function setListe($setlabo) {
$setlabo = !empty ($setlabo) ? filter_var($setlabo, FILTER_SANITIZE_STRING) : NULL;
$this->modelProduction->getListe($setlabo);
}
}
$controlProd = new ControllerProd();
Et enfin le 3ème fichier, qui va effectuer tout ce qui ressort de mysql
class ModelProduction{
private $db;
function __construct($db) {
$this->db = $db;
}
function getListe($getLabo){
//requête pour lister des produits en fonction de la variable ci-dessus
}
}
Mais le serveur ne reconnait pas l'objet $PDO : Pourquoi ?Notice: Undefined variable: PDO in C:\wamp\www\integration\controller\controllerProd.php
Merci,