Bonjour tout le monde, je poste une nouvelle discussion car j'ai besoin de vous.
Je voudrais mettre en place un système de formulaire mais avec le pattern MVC le tout en PHP.


ma classe singleton

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/**
 * Classe MySqlConnection : singleton
 */
 
class Singleton {
    private static $instance;
 
  const DEFAULT_SQL_USER = 'root';
  const DEFAULT_SQL_PORT = '3306';
  const DEFAULT_SQL_HOST = 'localhost';
  const DEFAULT_SQL_PASS = '';
  const DEFAULT_SQL_DTB = 'test';
 
private function __construct()   {
  try
     {
      $this->PDOInstance = new PDO('mysql:host='.self::DEFAULT_SQL_HOST.';port='.self::DEFAULT_SQL_PORT.';dbname='.self::DEFAULT_SQL_DTB,self::DEFAULT_SQL_USER ,self::DEFAULT_SQL_PASS,array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
     }
  catch (PDOExeption $e)
     {
       die("Erreur ! Connection serveur SQL impossible !" );
     }
  }
 
	public static function getInstance() {
		if(!isset(self::$instance) || self::$instance == null)
                    {
			self::$instance = new Singleton();
                    }
		return self::$instance; 
	}
 
        public function prepare($query)
  {
    return $this->PDOInstance->prepare($query);
  }
 
        public function query($query)
  {
    return $this->PDOInstance->query($query);
  }
}
 
?>
voici ma classe Article (modele)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class Article{
 
    private $id;
    private $titre;
 
    function __construct($titre=null, $id=null) {
        $this->id = $id;
        $this->titre = $titre;
    }
 
    public function getId() {
        return $this->id;
    }
 
    public function setId($id) {
        $this->id = $id;
    }
 
    public function getTitre() {
        return $this->titre;
    }
 
    public function setTitre($titre) {
        $this->titre = $titre;
    }
}
?>
Voici mon controller

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
require_once 'class.singleton.php';
require '../model/class.article.php';
 
class ManageArticle{
 
 
    public static function add(Article $article)
    {
        $connexion = Singleton::getInstance();
        $sql =$connexion->prepare("insert into article(`titre`) VALUES ('".$article->getTitre()."')");
        $sql->execute();
        $article->setId($connexion->insert_id());
        return true;
    }
 
 
   public static function getAll()
   {
        $connexion = Singleton::getInstance();
        $ress = $connexion->prepare("select * from article");
        $ress->execute();
        $listArticle = array();
 
        foreach ($ress as $value) 
        {
            $listArticle[] = new Article($data['titre'],$data['id_article']);
        }
 
        return $listArticle;
    }
}
?>
Et ma vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require_once"../controller/control.article.php";
 
$ajout = new ManageArticle();
add($ajout);
 
 
$fonction = ManageArticle::getAll();
 
 
echo "<pre>";print_r($ajout);
echo "<pre>";print_r($fonction);die;
 
?>
Lorsque j'execute le programme j'ai le message d'erreur suivant:

Fatal error: Call to undefined function add() in C:\wamp\www\MVC_FORM\view\liste.php on line 5
Pouvez-vous m'aider svp
Meric beaucoup