2009-11-01 4 views
1

comment gérez-vous des projets de taille moyenne avec PHP et Zend Framework. Utilisez-vous la table/rangée DB de Zend pour vos opérations de modèles et de bases de données? Ou avez-vous une sorte de classe de modèle abstrait avec vos instructions SQL?Table Zend DB? Ou SQL par vos propres moyens?

Je voudrais entendre quelques opinions, merci.

+2

Je n'utiliserais pas Zend. C'est difficile à utiliser. Il vaut mieux utiliser Codeigniter – GabiMe

+3

CodeIgniter est plus simple mais aussi moins bonne qualité que ZF et avec beaucoup moins de fonctionnalités. La persévérance sera payante! –

+0

Zend est extrêmement facile à utiliser. C'est difficile à apprendre: D –

Répondre

6

Je recommanderais Zend_Db_Table et Row pour la gestion de base de la base de données. Ce n'est pas très avancé (voir Doctrine pour un ORM complet) mais c'est un bon moyen d'encapsuler les fonctionnalités et vous pouvez ajouter des fonctionnalités personnalisées aux objets Row.

Vous pouvez toujours ajouter des méthodes SQL premières à vos modèles:

class MyModel extends Zend_Db_Table_Abstract { 

     public function getSomething(){ 
      return $this->getAdapter()->fetchAll("SELECT * FROM `tbl`"); 
     } 

    } 
+0

+1; c'est essentiellement ce que ma réponse a dit. Dans les projets précédents où j'ai utilisé ZF, nous avons dérivé des classes de Zend_Db_Table_Abstract pour chacune de nos tables; cela a plutôt bien fonctionné, et nous a permis d'avoir une hiérarchie de classe supportant des capacités communes entre certains types de tables (tables de recherche, par exemple). –

+0

@James: Ne vous étendez que Zend_Db_Table Abstract ou bien Zend_Db_Table_Row? – opHASnoNAME

+0

Nous avons seulement étendu Zend_Db_Table_Abstract; nous aurions probablement pu nous sauver un peu de travail en étendant Zend_Db_Table_Row, cependant. Nous nous sommes retrouvés avec deux couches de modèles - les classes de tables concrètes, et un second modèle de couche d'application qui utilisait ces classes de tables. –

1

Nous utilisons personnellement Zend_Db_Select() dans les modèles dans notre société. C'est parce que nous utilisons beaucoup de jointures et d'autres choses dans notre logiciel de commerce électronique. Pour les applications simples, Zend_Db_Table est approprié.

1

J'ai récemment utilisé Doctrine pour la couche DB et je n'ai pas regardé en arrière. J'ai trouvé simple de remplir les graphiques d'objets de la base de données. D'autres solutions étaient trop lourdes pour gérer les relations à mon goût.

Mon modèle de domaine se trouve au-dessus de la couche DB et gère la logique métier.

Cela dépend vraiment de votre modèle de domaine. La version actuelle de Doctrine requiert que tous les modèles étendent une classe, ce qui n'est pas approprié si vous avez besoin d'un héritage de modèle. En outre, il ne convient que si votre modèle est similaire à votre structure de base de données.

Questions connexes