IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Orm SQLite [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut [POO] Orm SQLite
    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.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Petite précision, d'après la doc de php, arrayQuerry est identique à la fonction sqlite_array_query, mais orienté objet.
    D'ou mon étonnement par rapport a cette erreur.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 186
    Points
    186
    Par défaut
    Solution trouvé.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Ta solution m'intéresse... Peux tu nous expliquer ce que tu as fait !

    Merci

  5. #5
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Le prob vient de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $connect = new SQLiteDatabase($db);
    Il faudrait mettre $this->connect

    Alors sinon dans "public function __desctruct($base)", __desctruct est bien entendu mal orthographié.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] POO ORM Entité
    Par dorian53 dans le forum Langage
    Réponses: 6
    Dernier message: 25/03/2011, 15h14
  2. [AIR] ORM pour AIR / SQLite
    Par Blaede dans le forum Flex
    Réponses: 8
    Dernier message: 21/01/2011, 17h30
  3. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  4. [POO] Différence entre ORM et Active Record ?
    Par Jokaritaff dans le forum Langage
    Réponses: 6
    Dernier message: 25/05/2008, 16h10
  5. lier un cube à un objet (POO)
    Par Hypnos dans le forum OpenGL
    Réponses: 12
    Dernier message: 26/08/2003, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo