Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-12-2015 09:59:40

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

Charger des vues clients avant les vues par défaut si elle existent

Bonjour,

Suite à un précédent message sur le fofo, j'ai construit une architecture dans mon projet comme suit :

Code:

[lang=php]
-   client
    -   clientOne
        -   Invoice
        -   Cart
        -   Orders

    -   clientTwo
        -   Invoice
        -   Orders

    -   clientThree
        -   Reporting

-   module
    -   Application
    -   CartModule
    -   InvoiceModule
    -   OrdersModule
    -   Reporting

J'aimerais savoir comment procéder pour que dans mes controleur, je puisse avoir une nouvele stratégie de chargement des vues. Je m'explique :

Admettons que pour le module CartModule, j'ai une vue générique cart.phtml, mais que mon clientOne, et ClientTwo veulent une vue qui leur est propre. De là, j'aimerai stocker ces vues dans leur dossier client, et créer une stratégie pour charger ces vues là si elles existent sinon retourner la vue par défaut, celle commune a tous. Je précise que mon dossier client est autoloadé dans mon composer.json, mais que ce ne sont pas des modules. Juste des scripts qui étendent des scripts du tronc commun.

Je pense qu'il faut que je m'oriente vers une ViewStrategy couplé avec un Resolver custom, mais je n'ai pas réussi a faire marcher quoique ce soit jusqu’à présent...

Toute aide serait la bienvenue.


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

Hors ligne

 

#2 29-12-2015 16:51:15

Cawet
Nouveau membre
Date d'inscription: 29-12-2015
Messages: 3

Re: Charger des vues clients avant les vues par défaut si elle existent

Salut,

J'ai pas suivie ton précédent message, l’architecture de client que tu nous montre c'est celui du modèle ? il s'agit bien de types de clients?

moi je définirai dans un fichier de config un view_manager pour chaque type de client, qui pointe sur un dossier de template différent pour chacun d'eux  (mais qui on la même arborescence) :view_manager_clientOne, view_manager_clientTwo, etc...

Puis dans la fonction Boostrap de la classe Module de Application, je merge la clé du tableau de config "view_manager" avec le bon view_manager, selon l'utilisateur connecter.

Ou quelque chose comme sa en tout cas ^^. Trop bourrin peut être.

C'est quoi ce dossier "client" autoloadé par le composer.json au juste?

Dernière modification par Cawet (29-12-2015 16:51:48)

Hors ligne

 

#3 29-12-2015 21:54:37

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

Re: Charger des vues clients avant les vues par défaut si elle existent

Salut,
Merci pour ta réponse,

J'ai solutionné ce problème hier. La réponse ici :
http://stackoverflow.com/questions/3422 … -if-exists

En gros j'ai un nouveau TemplateMapResolver custom que j'ajoute au viewRenderer de base de Zend Framework2, et ceci dans une nouvelle stratégie.

Çà marche plutôt bien j'ai pas l'impression d'avoir des effets de bord mais c'est encore en tests.


Merci d'avoir essayé d'aider.


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

Hors ligne

 

#4 30-12-2015 10:19:00

Cawet
Nouveau membre
Date d'inscription: 29-12-2015
Messages: 3

Re: Charger des vues clients avant les vues par défaut si elle existent

a ouaii, c'est plus propre quand même ^^

Hors ligne

 

#5 30-12-2015 11:14:50

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

Re: Charger des vues clients avant les vues par défaut si elle existent

Et c'est encore plus propre depuis que j'ai fait une refacto dessus ^^'

Par contre, la manière de faire ne t'aide pas pour ton post ? Tu as un problème sur la même couche non ?


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

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