Bonjour à tous.

Pour les besoin d'un projet de formation, je dois recréer une sorte d'Orm (type Doctrine, Propel, etc) mais simplifié bien sur avec SQLite.

Je rencontre une erreur et je ne trouve pas le problème.

J'ai 2 class mères et 1 class fille. Une première me permettant de me connecter à la base et une seconde dans laquelle je dois récupérer la structure d'une table.

Dans ma première class de connexion (qui fonctionne), j'ai ce code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
	class MyOrm_Db {
 
		public $connect;
 
		public function __construct($db) {
			$connect = new SQLiteDatabase($db);
		}
 
		public function  __desctruct($base) {
			sqlite_close($base);
		}
	}
?>

Dans un second fichier, j'ai ce code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
	class MyOrm_Table {
 
		public function __construct($base, $name) {
			$pragma = $base->connect->arrayQuery("PRAGMA table_info('$name')", SQLITE_ASSOC);
			echo "<pre>";
			print_r($pragma);
			echo "</pre>";
		}
	}
?>

Et enfin, ma class fille :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php
	class User extends MyOrm_Table { 
 
		protected $_name = "user"; 
 
		public function __construct($db) {
			parent::__construct($db, $this->_name);
		}
	} 
?>

Je fais appel a mets class de cette façon :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
	//Connection 
	$db = new MyOrm_Db("test.db");
	$user = new User($db); 
	//Deconnection 
	unset($db);

Lorsque j'execute ce bout de code, je me retrouve avec cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Fatal error: Call to a member function arrayQuery() on a non-object in C:\wamp\www\my_orm\myorm_table.php on line 5
Le fichier myorm_table.php contient les class MyOrm_Table et User. Je sais c'est pas terrible de mettre 2 class dans un même fichier, mais c'est uniquement le temp de faire mets test.

Quelqu'un peut il m'expliquer pourquoi j'ai cette erreur ?

Merci d'avance,
Doki.