Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-09-2014 17:26:57

romsVLM
Membre
Date d'inscription: 23-01-2014
Messages: 89

Compréhension des Modules sur ZF2

Bonjour tout le monde,

j'ai du mal avec l'utilisation des modules sur ZF2. j'ai plusieurs questions dont je vais les numéroter.

1) Dans la doc, et la plupart des tutos sur le web, ils donnent des exemples de créations de sites avec ZF2 en créant un Module appélé Album qui permet la gestion d'albums. J'ai très bien saisi l'utilisation d'un tel module.
Mais imaginons maintenant que je vueille sur mon site une page de contact (avec un formulaire) et une page "trouver nous" (avec du texte et une google map). Comment concevoir ceci ?

  1.1) Dois-je créer un module Contact et un module TrouvezNous ?
  1.2) Dois-je rester dans le module Application et créer deux controlleur : ContactController et TrouverNousController ?
  1.3) Dois-je rester dans le module Application, dans le controller IndexController, et créer deux actions : contactAction (vers la page d'action) et nousTrouverAction (vers la page nousTrouver) ?

2) Maintenant imaginons que je vueille créer un site pour une boucherie. Sur ce site j'ai ces éléments de menu :
  - Accueil (page d'accueil du site avec les dernières actualités)
  - Nos viandes (page affichant les différentes viandes présentent en boucherie avec leur prix)
  - Nos paniers (page affichant les différents paniers de viandes avec leur prix et un boutton pour les ajouter au panier)
  - Contact (formulaire de contact)
  - Nous Trouver (page avec du texte et une gMaps)
  - Panier (menu déroulant avec un récapitulatif des articles présents dans le panier + un lien pour voir le panier et ensuite valider la commande)

Quelle conception serait la plus adaptée ? combien de module ? lesquelles ? garder le module Application ? avoir un module pour le panier ? Un module pour la gestion des actualités sur la page d'accueil ?

Merci de votre aide.

Dernière modification par romsVLM (25-09-2014 18:18:45)

Hors ligne

 

#2 25-09-2014 22:28:59

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

Re: Compréhension des Modules sur ZF2

Salut, ce sujet a déjà été posé plusieurs fois donc tu devrais pouvoir trouver ton bonheur sur ce forum.

Dans ton cas tu peux faire soit la solution 1.2 soit la solution 1.3 à toi de voir comment tu veux découper ton code.

Pour le deuxième point tu peux faire 2 modules, un application qui va regrouper toute ce qui concerne les viandes, panier etc ... (en gros les 5 premiers points) et un autre pour gérer la commande (panier).

Hors ligne

 

#3 26-09-2014 11:19:53

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: Compréhension des Modules sur ZF2

Bonjour,

Alors je pense sincèrement que cela dépend de tes futurs projets. Seras-tu encore sur zf2 ?
Le but d'un module c'est de pouvoir le réutiliser dans d'autre projet.
Un module application est le cœur de ton appli, en gros si jamais tu veux construire une architecture de base pour des sites vitrine tu duplique ton module application et ensuite t'adapte au client.
Au contraire si tu pense, que tu n'aurais pas de page contactez nous sur tes futurs projet tu peux décider d'en faire un module à part. Après comment veux tu découper ton code ?

Les modules, faut les voir comme des briques réutilisable, plus tu les faits génériques plus tu peux les utiliser pour différents projets. Un module application super complet serait à même de te faciliter la tâche pour enchaîner des projets simple et rapidement. Mais encore faut-il déterminer si tous les projets se ressemblent car si un client veux pas 5 fonctionnalités de ton module application, tu passerai du temps à nettoyer ton module principal. Alors qu'avec plusieurs module tu le met ou pas et c'est réglé.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#4 26-09-2014 14:21:11

romsVLM
Membre
Date d'inscription: 23-01-2014
Messages: 89

Re: Compréhension des Modules sur ZF2

merci pour votre aide.

J'ai donc opté pour un module Application, un module Panier, et un module News

Mais voila je rencontre un problème.

J'ai mon module News qui gère un système de news :
  - NewsController :
        - action index : affiche les 5 dernières news dans la vue index.phtml
        - action add : ajoute une news
        - action delete : supprimer une news
        - action edit : modifier une news

Je viens coder ce module il fonctionne parfaitement, on peut afficher la liste des news par l'url : http://projet.local/news (appel au controller NewsController, avec l'action index).

Moi mon site à pour page d'accueil l'action "index" du controller IndexController du module Application.
L'action "index" appelle la vue index.phtml.

J'aimerai dans cette page d'accueil affiché la liste des news.
Donc j'aimerai dans cette page d'accueil affiché le contenu de la vue index.phtml du module "News", qui est appelée par l'action "index" du controller "NewsController"

j'ai essayé ceci :

Code:

<?php $this->forward()->dispatch('News\Controller\News', array('action' => 'index')); ?>

mais j'obtiens cette erreur :

    Zend\View\HelperPluginManager::get was unable to fetch or create an instance for forward

Est-ce la bonne façon de procéder ?

Merci

Hors ligne

 

#5 26-09-2014 17:02:02

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

Re: Compréhension des Modules sur ZF2

Non c'est pas le mieux, l'idéal c'est de faire une aide de vue qui va s'occuper d'afficher les news. Et normalement l'aide de vue ne fait appel qu'à la couche service sans passer par tes contrôleurs wink.

Hors ligne

 

#6 27-09-2014 17:09:42

romsVLM
Membre
Date d'inscription: 23-01-2014
Messages: 89

Re: Compréhension des Modules sur ZF2

Mais mon fichier d'affiche des news (index.phtml du module News) contient ceci :

Code:

[lang=php]
<?php 
  $tabNewsIds = array(); // tableau contenant les ids des news
  $tabNewsTitles = array(); // tableau contenant les titres des news
  $tabNewsContents = array(); // tableau contenant les contenus des news
  
  // pour chaque news -> affectations des ids, titres et contenus dans leurs tableaux respectifs
  foreach($this->news as $new) {
      array_push($tabNewsIds, $new->news_id);
      array_push($tabNewsTitles, $new->news_title);
      array_push($tabNewsContents, $new->news_content);
  }
?>

<div class="row">
  <!-- Colonne de droite de taille 5 avec le titre des actualitées -->
  <div class="col-md-5">
    <h3>Les dernieres actualites</h3>
    <div class="list-group">
      <!-- Affichage des titres dans la liste
           Le premier étant sélectionné -->
      <?php foreach($tabNewsTitles as $key=>$title): ?>
          <a href="#" class="list-group-item <?php if($key==0) echo 'active';?>" id="<?php echo $tabNewsIds[$key]; ?>">
            <?php echo $this->escapeHtml($title); ?>
          </a>
      <?php endforeach; ?>
    </div>
  </div>
  
  <!-- Colonne de droite de taille 7 avec le contenu des actualitées -->
  <div class="col-md-7">
    <div class="panel panel-primary" style="margin-top:56px;">
      <div class="panel-heading">
        <h3 class="panel-title"><?php echo $this->escapeHtml($tabNewsTitles[0]); ?></h3>
      </div>
      <div class="panel-body">
        <!-- Affichage de tout les contenus des news -->
        <?php foreach($tabNewsContents as $key=>$content): ?>
            <p class="news_content <?php if($key==0) echo 'first';?>" id="news_content_id_<?php echo $tabNewsIds[$key]; ?>">
              <?php echo nl2br($this->escapeHtml($content)); ?>
            </p>
        <?php endforeach; ?>
      </div>
    </div>
  </div>
</div>

Je ne vais tout de même pas mettre ça dans un Helper. Non ?

Moi ce dont j'ai besoin, c'est d'appeler depuis la vue index.phtml de mon module application, l'action indexAction() du module News afin que j'obtienne l'affichage du système de news complet.

Hors ligne

 

#7 27-09-2014 18:03:39

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

Re: Compréhension des Modules sur ZF2

Pourquoi pas utiliser un helper ? Est-ce que ça a un intérêt pour toi d'avoir un contrôleur pour afficher les news ? Si tu t'en sers qu'en mode "widget" et que ta page de news n'est jamais utilisée ça sert à rien. Tu peux associer à une aide de vue un template pour faire ce genre de chose.

Concernant le traitement des tableaux que tu fais dans la vue c'est pas le lieu, logiquement c'est ton service qui doit retourner le contenu à la vue. Elle n'est pas censée faire des traitements complexes (outre de l'affichage)

Hors ligne

 

#8 27-09-2014 18:25:22

romsVLM
Membre
Date d'inscription: 23-01-2014
Messages: 89

Re: Compréhension des Modules sur ZF2

c'est le contenu de mon index.phtml qui doit être dans mon Helper, ou le contenu de mon indexIndex() ? (car c'est la qu'il y a l'appel à la requête pour récupérer les news.

car dans mon indexAction() j'ai ceci :

Code:

[lang=php]
    public function indexAction()
    {
        $config = $this->getServiceLocator()->get('Config');

        return new ViewModel(array(
            'news' => $this->getNewsTable()->fetchAllLimit($config['globals']['NB_NEWS']),
        ));
    }

Hors ligne

 

#9 27-09-2014 19:54:49

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

Re: Compréhension des Modules sur ZF2

Bah tu fais un template pour formater comme tu as besoin l'affichage de tes news. Et la récupération des news tu le fais dans ton aide de vue à laquelle tu affectes ton template.

Hors ligne

 

#10 28-09-2014 15:16:45

romsVLM
Membre
Date d'inscription: 23-01-2014
Messages: 89

Re: Compréhension des Modules sur ZF2

Problème résolu avec le Helper.

Merci de ton aide, grâce à toi j'ai compris et je sais utiliser les Helpers maintenant smile

Dernière modification par romsVLM (28-09-2014 15:51:41)

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