Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-12-2011 17:50:34

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Question sur les normes Zend

Bonjour, ma question va peux être sembler un peu bizarre mais il n'est pas forcément évident pour un débutant de savoir comment faire certaines choses.

En effet pour l'application que je développe avec le Zend Framework (1.11) je vais avoir besoin d'utiliser une fonction "externe" pour afficher mes news sur la page d'accueil.
J'ai donné l'exemple de la news mais ça pourrait être quelque chose qui doit être accessible partout mais dont je n'ai pas besoin tout le temps. Par exemple : faire un calcul (j'ai pas d'autre idées en tête qui pourraient s'apparenter à ce principe, j'éditerais si j'en ai qui me reviennent).

Je vais tenter d'être le plus clair possible. Je pense avoir plusieurs solutions pour faire ça mais je ne parviens pas à trouver laquelle est la meilleure (selon les bonnes pratiques).

- Directement faire le traitement dans le contrôleur de ma page d'accueil. Le problème c'est que je devrais réécrire le code pour récupérer la news et l'afficher si j'ai besoin de le mettre ailleurs
- Utiliser un helper de vue, l'avantage que j'y vois c'est que c'est facilement réutilisable.
- Éventuellement faire une classe avec plusieurs fonctions dont celle permettant de récupérer les news. (j'y crois pas trop mais sait on jamais)
- Utiliser un plugin (je n'ai pas vraiment bien compris encore à quoi ça servait mais je me dis que ça doit bien servir à quelque chose et j'ai la sensation que ça serait pour faire ça)
- Faire une methode dans mon modèle pour récupérer les news (j'ai l'impression que ça serait vraiment crade et pas du tout MVC de faire comme ça, éventuellement du côté du mapper ou Db_Table si je ne peux pas m'en sortir avec un find() ou fetchAll())

Si on tiens compte des idées que j'ai donné ci-dessus, j'aurai potentiellement 5 façons d'afficher mes news hors je suis persuadé qu'il y a une solution plus performante pour traiter ce genre de chose suivant la situation et c'est là que le Zend Framework est un peu obscure. Je ne parviens pas à savoir (par manque de connaissance encore du framework) quel choix faire (bien que l'idée de la classe à côté ou d'utiliser le modèle me paraissent vraiment pas propre).

J'espère que j'ai pu me faire comprendre et attend avec impatience des précisions à ce sujet. D'avance merci !

Cordialement

Orkin

Hors ligne

 

#2 29-12-2011 18:41:46

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: Question sur les normes Zend

Pour moi, dans ta page, les news sont tes données elles sont donc le M du MVC.
Si j'étais toi je créerais une classe dans le modèle pour gérer les news. Par contre ce n'est pas parce que c'est le modèle que cela obligatoirement doit dériver de Zend_Db*.
Ceci évidemment est mon opinion et j'ai peut-être une vision un peu large du modèle, mais personnellement c'est comme cela que je ferais

Hors ligne

 

#3 30-12-2011 09:32:04

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Question sur les normes Zend

Je te remercie Ithier, quelqu'un aurait un autre avis ?

Hors ligne

 

#4 30-12-2011 14:14:15

lesauf
Membre
Lieu: Yaoundé - Cameroun
Date d'inscription: 29-11-2007
Messages: 52
Site web

Re: Question sur les normes Zend

Pour continuer dans la suite d'Ithier, dans ton controlleur
tu pourrais avoir quelque chose comme :

Code:

[lang=php]
$modelNews = new Model_News();
$newsList = $modelNews->fetchAll();

// envoi à la vue
$this->view->news = $newsList;

Pour envisager la possibilité d'étendre ton appli dans la suite,
tu pourrais inclure une couche Service, qui pourrait se charger d'effectuer
certains traitements si tu veux.

Dernière modification par lesauf (30-12-2011 14:18:26)

Hors ligne

 

#5 30-12-2011 15:03:40

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Question sur les normes Zend

Salut Lesauf, j'utilise déjà cette méthode là à la différence que j'ai 2 types de modèles : des modèles qui représentes mes tables (donc qui étendes Db_Table_Asbtract) et des modèles métier que j'utilise dans mon application via mes contrôleurs.

La seule différence entre ton code et le mien c'est qu'entre mon objet métier et mon modèle Db c'est que j'ai un mapper qui fait la liaison entre la bdd et la partie métier (le mapper fait en réalité un peu plus de choses).

Tu parles d'un point qui m'intéresse fortement et j'aurai aimé que tu développes un peu plus la façon dont on peux implémenter ça, c'est la couche Service. Car j'ai l'impression de déjà utiliser quelque chose de ce genre justement via mon mapper et mes modèles de type entité et ceux de type métier.

Merci d'avance

Orkin

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