Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-09-2008 17:56:16

xorax
Membre
Lieu: Lyon
Date d'inscription: 30-10-2007
Messages: 12
Site web

[Zend_Db_Table] nom de la classe en constante

bonjour,

J'ai pas trouvé de moyens efficace pour étendre Zend_Db_table afin d'avoir une méthode ou variable static (ou une constante) qui me permettrait de prendre le nom de table directement.

Pourquoi ? parce que je suis obligé de passer le nom de la table dans les méthodes Zend_Db_Select::join*()

à moins qu'il y est une autre solution ?

le but étant de ne pas dupliquer le nom du table.

Hors ligne

 

#2 11-09-2008 20:29:32

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Db_Table] nom de la classe en constante

Code:

Classe MyTable extends Zend_Db_Table {

   protected $_name = 'ma_table';


   public function getTableName () {
      return $this->_name;
   }
}

simple non ??
A+JYT

Hors ligne

 

#3 12-09-2008 01:47:33

xorax
Membre
Lieu: Lyon
Date d'inscription: 30-10-2007
Messages: 12
Site web

Re: [Zend_Db_Table] nom de la classe en constante

dans ce cas je suis obligé de créer une instance de MyTable

c'est justement ce que je veux éviter...

Je veux pouvoir prendre le nom de la table sans être obligé de créer un nouvel objet (d'où l'utilisation d'une méthode ou variable static ou d'une constante).

Hors ligne

 

#4 13-09-2008 09:53:11

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Db_Table] nom de la classe en constante

Code:

Classe MyTable extends Zend_Db_Table {
   const TABLE_NAME = 'ma_table';

   protected $_name = TABLE_NAME;


   public function getTableName () {
      return $this->_name;
   }
}

du coupe tu peux faire

Code:

echo MyTable:: TABLE_NAME;
// ou
$tbl =new MyTable();
echo $tbl-> getTableName () ;

A+JYT

Hors ligne

 

#5 13-09-2008 13:28:58

xorax
Membre
Lieu: Lyon
Date d'inscription: 30-10-2007
Messages: 12
Site web

Re: [Zend_Db_Table] nom de la classe en constante

ouè dans ce cas, je suis obligé de créé la constante et la protected $_name pour chaque table...

parce que je ne peux pas faire (sans php 5.3 et les Late Static) :

Code:

Class X_Db_Table extends Zend_Db_Table {
   protected $_name = self::TABLE_NAME;

  static function getTableName () {
      return self::TABLE_NAME;
   }
}

Class MyTable extends X_Db_Table {
   const TABLE_NAME = 'ma_table';
}

Hors ligne

 

#6 13-09-2008 14:07:35

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Db_Table] nom de la classe en constante

non tu dois

Code:

Class X_Db_Table extends Zend_Db_Table {
  static function getTableName () {
      return self::TABLE_NAME;
   }
}

Class MyTable extends X_Db_Table {
   const TABLE_NAME = 'ma_table';
   protected $_name = self::TABLE_NAME;
}

car sinon la compilation de la classe X_Db_table crée la constante avant la compilation de la classe MyTable
A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages