Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-08-2008 19:07:01

pozowebs
Membre
Lieu: Gran Canaria
Date d'inscription: 06-07-2008
Messages: 83
Site web

models et singleton??

Bonjour,

Petite question philosophique hahaha:

Vu qu'à chaque fois que je veux accéder aux données de mon modèle "Exemples", je fais systématiquement

$exempleTable = new Exemples();   (suivi des select() et fectAll() qui vont bien)

(Mon modèle: class Exemples extends Zend_Db_Table_Abstract)

J'en suis à me demander si je n'ai pas oublié d'implémenter un singleton qui me permettrait de limiter à une seule le nombre d'instances de cette classe.

Votre avis? Merci a+!

Hors ligne

 

#2 25-08-2008 22:39:34

dreuff
Nouveau membre
Date d'inscription: 24-08-2008
Messages: 1

Re: models et singleton??

Salut pzowebs,
cette question est tout à fait juste, il n'y qu'une table "Exemples" en base, donc logiquement qu'une instance de de sa classe Zend_Db_Table_Abstract ! Dans nos projets internes nous implémentons singleton pour les models, et quand la base comporte beaucoup de tabes on hésite pas à faire un Factory qui renvoie des singleton..
Bonne continuation !

Dernière modification par dreuff (25-08-2008 22:40:22)

Hors ligne

 

#3 26-08-2008 03:03:28

pozowebs
Membre
Lieu: Gran Canaria
Date d'inscription: 06-07-2008
Messages: 83
Site web

Re: models et singleton??

yes merci!.

En cherchant un peu, je suis tombé sur cette approche que je trouve intéressante: http://bolsadeideas.cl/zsamer/2008/08/l … on-helper/

Il s'agit d'un action helper qui permet de charger les models (voir lien ci-dessus pour le détail du code).  C'est en espagnol, mais simple à comprendre smile.

l'idée (ceci pour recuperer le model user dans le module Admin):

Code:

$userModel = $this->_loadModel->getSingleton('admin/user');

Autre exemple d'utilisation, faire ceci (sans avoir besoin de require, ou de faire new User()):

Code:

class Permissions_Admin_UserController extends Zend_Controller_Action
{
    public function init()
    {
        $this->_loadModel = $this->_helper->getHelper('LoadModel');
    }

    public function listAction()
    {
       $this->view->list = $this->_loadModel->getSingleton('admin/user')->findAll();
    }
...

voilà, a+

Dernière modification par pozowebs (26-08-2008 03:05:19)

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