Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-04-2016 10:39:24

cactous
Nouveau membre
Date d'inscription: 15-04-2016
Messages: 7

Afficher données d'un autre module

Bonjour,

Je travaille sur une appli ZF2 et doctrine.

J'ai un module client qui fonctionne très bien et qui affiche mes données, en utilisant une entité, un repository, un controleur, et une vue correspondante.

Je voudrais afficher ces mêmes données sur ma page d'accueil, donc dans le module application, via la vue Module/Application/.../view/index.phtml.

Donc utiliser les données d'un module dans un autre module.

Je voudrais savoir quels sont les différents moyen de le faire.

Merci pour votre aide. smile

Hors ligne

 

#2 15-04-2016 13:50:59

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

Re: Afficher données d'un autre module

Bonjour,

Alors tu as plusieurs moyen, tous plus ou ou moins maintenable. Si tu veux faire ça propre il faut que tu aies en tête que tes module doivent rester indépendant les un des autres surtout si tu n'a pas instauré de dépendance entre eux.
Puisque application étant le cœur de ton appli, je te conseille de ne pas directement appeler tes services clients directement.
Selon moi tu devrai jouer sur un évènement trigger dans le contrôleur de ta page index. Écouté par ton service client qui lui renvoie des données dans un partial déjà rendered. Et que ton controleur d'accueil n'est juste qu'a recracher tout cela;


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

Hors ligne

 

#3 15-04-2016 16:42:43

cactous
Nouveau membre
Date d'inscription: 15-04-2016
Messages: 7

Re: Afficher données d'un autre module

Merci pour ta réponse! Je suis novice sur zend et tu me parles un peu trop technique, même si je vois ce que tu veux dire.
En fait je suis parti sur une Factory dans laquelle j'appelle mon repository via le serviceLocator. J'imagine que c'est pas très propre mais j'ai fait au plus vite. hmm


Code:

[lang=php]<?php 

namespace Application\Factory;

use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Application\Controller\IndexController;


class IndexControllerFactory implements FactoryInterface{
    
    public function createService(ServiceLocatorInterface $serviceLocator){
        $realServiceLocator = $serviceLocator->getServiceLocator();
        $indexMapper = $realServiceLocator->get('doctrine.entitymanager.orm_default')->getRepository('\Client\Entity\Client');
        return new IndexController($indexMapper);
    }
}

?>

Hors ligne

 

#4 20-04-2016 14:28:33

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

Re: Afficher données d'un autre module

Salut,

utiliser une factory c'est propre par contre utiliser le repository dans un contrôleur ça c'est dégueulasse. En gros ce que je te conseil c'est d'avoir une couche service qui elle est injecté via une factory dans ton contrôleur. Et c'est ta couche service (dans ton cas un ClientService) qui lui même va avoir accès à ta couche DAO. Ce que je te conseil c'est de directement injecter l'entity manager de doctrine plutôt que le repository et dans ton service tu fais un singleton pour récupérer le repository.

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