Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Je réédite ce post car perdu dans un autre (http://www.z-f.fr/forum/viewtopic.php?id=1491&p=2).
Et puis, il sort un peu du contexte de son post père, donc nouvelle vie pour lui...
Alors j'interviens à nouveau afin de faire appel (encore une fois ;-) ) à votre expérience.
Après présentation de l'architecture (Zend Framework) du projet aux webmasters et designers qui travaillent avec moi, ils m'ont posé les questions suivantes :
- est il possible d'avoir tout les fichier HTML (ceux qui sont présents dans les vues et layouts) regroupés en un seul et même endroit ?
- est il possible d'avoir un système de thème? autrement dit est il possible d'avoir tous les fichiers phtml dans un seul et même répertoire et rangés par thème (duplication des fichiers pour chaque thème) ?
Merci pour vos retours sur la question,
Cordialement,
Hors ligne
Je dirais oui. Cependant si je te dis oui c'est parceque l'appli Magento (OpenSource d'eCommerce basé sur ZF) fonctionne de la sorte : tu as un répertoire design et à l'interieur tu trouves les templates organisés en 3 sous-répertoires (admin, frontend et pour l'install), mais je n'ai pas expérimenté ce que tu souhaites faire.
Je te conseillerai de regarder avec un exemple concret comment cet appli fonctionne, tu trouverais certainement beaucoup de réponses à tes questions. Cependant, c'est costaud, moi j'y pige pas grand chose...
Bon courage.
Hors ligne
Bonjour,
Moi dans mes applis j'ai une arbo comme ça :
root docRoot index.php application module1 ctrl model module2 ctrl model views module1 .. module2 ..
Donc mes vues sont bien réunies et les graphistes tapent dans le répertoire views.
Le défaut est que la vue n'est plus intégrée au module... je suis resté sur cette archi quand même justement pour cette contrainte de graphisme.
A+, Philippe
Hors ligne
oui si tous tes module sont dans le dossier application ce n'est ensuite qu'une question de hiérarchie
mais la difficulté pour les designer c'est qu'elle ne correspondra pas au chemins des urls
le problème vient du fait que ZF impose le dossier scripts dans View
tu auras donc un niveau hiérarchique en plus entre les url et les dossiers
il faut que les designer comprenne qu'ils ne doivent pas faire de lien en dur car sinon ça ne fonctionnera pas
si tu fait faire un travail en une seule fois au designer tu peux leur donner la hiérarchie apparente (celle des urls) pour qu'ils construisent leurs pages.
ensuite tu place les page dans les dossier scripts approprié s'ils ont respecté les noms des contrôleur tu ne devrais pas avoir trop de difficulté à tout intégrer.
pour ma par interdit d'avoir des lien dans les pages. ils font leur sauce et tous les liens sont remplacé par des variables fournies par le contrôleur.
de même interdit d'avoir des chemins relatis pour les images scripts js et autres css tous les chemins doivent êtres relatif à la racine du site (en /toto/machin.truc) ainsi un ajout du baseurl devant permet de placer les page dans l'endroit où l'appli est installée.
A+JYT
Hors ligne
pour les liens js/img/etc nous utilisons des constantes (define dans le bootstrap via fichier .ini)
couplé avec des virtual host c'est redoutable.
<img src="<?php echo PATH_IMG;?>pressMe.jpg">
pour répondre aux 2 questions: oui et oui,
nous utilisons une organisation en template, et tous les fichiers phtml sont au mêmes endroit, c'est juste une question d'organisation dans l'architecture des dossiers.
Hors ligne
Merci à tous pour vos réponses.
@ Lethak : est il possible d'avoir un exemple de l'arbo que tu utilises ? Et la façon dont tu lies tout cela avec les controllers et les vues ?
@ Philippe : en effet, cela est fortement désolidarisé de la structure de départ...
Bon je vais essayer d'étudier la question de mon côté en prenant en compte vos différentes remarques. Je tacherai de vous faire un retour sur la méthode que j'ai retenu...
Cordialement,
Dernière modification par elkolonel (23-07-2008 20:29:21)
Hors ligne
Bonjour,
je reviens sur ce sujet car avec un graphiste nous travaillons en parallèle sur le même projet.
Comment faites-vous pour que les designers ne viennent jamais taper dans le code source d'un controller ? Est-ce que déjà vos designers ont accès aux contrôleurs ?
Existe t il une solution avec ZF pour un meilleur travail en équipe ? Comment faites vous pour que les designers soit autonomes dans l'ajout de feuilles de styles et dans la gestion des templates.
J'ai pu étudier le système de Magento et il est très abouti avec une gestion des gabarits par des fichiers XML...
Mais je pense que Varien a développé un moteur assez complexe pour toute cette gestion. Est-ce que quelqu'un à t-il une solution accéssible?
merci
Hors ligne
pas de solution miracle a mon avis:
le graphiste fait les maquettes / images (découpe et css si il sait faire )
et un intégrateur ce charge de mettre tout ca dans les vues, si il n'a pas acces aux controller il faut donc qu'il spécifie aux dev ses besoins et que les dev lui fournissent la liste des variables assignées a la vue.
cet intégrateur peut etre un dev ou un graphiste qui comprend comment fonctionne php.
au pire il apprend
ou encore au pire, le dev se charge de l'intégration des modifications une fois que le graphiste a terminé la partie découpe de sa maquette
Dernière modification par lethak (06-08-2008 18:50:28)
Hors ligne
Comment faites-vous pour que les designers ne viennent jamais taper dans le code source d'un controller
Je ne pense pas qu'un controller doit être accessible au graphiste. Le but du MVC est de rendre la vue indépendante du controlleur, si ce dernier vient jouer dans un quelconque controlleur, alors ca va vite devenir une usine à gaz. Je pense que c'est au développeur de donner au graphiste tous les éléments qu'il doit avoir besoin : path, nom du site, positions, etc. S'il a besoin d'éléments génériques soit tu crées un helper adapté ou soit tu l'intègre par héritage dans un controlleur parent.
Pour finir je dirai que l'intérêt de ZF, hormis ces composants et surtout lors du travail en équipe.
Même si cela peut paraitre contraignant, je crois que c'est la meilleure solution, pas seulement d'un point de vue d'éthique (au nom du Controlleur, de la Vue et du Modèle, faites que je respecte les standards... ) mais surtout pour le maintient du code. Si l'on utilise mal le ZF, on se retrouve vite autour d'une véritable usine à gaz.
En ce qui concerne l'ajout de feuille de style, que tu utilises le Layout ou non, le header.phtml reste une vue. Il peut ajouter ce que bon lui semble à l'intérieur.
PS: j'ai regardé aussi Magento quand je l'ai découvert, il est très abouti et reste très complexe à comprendre quand on débute. Déjà ils utilisent les librairies ZF mais surtout les leurs. Il y'a un bouquin qui est sorti à ce sujet, à l'occaz je me le procurerai et tâcherai de bien comprendre leurs structures (ça peut-être utile si un client veut intégrer un eCommerce à son site).
Dernière modification par whitespirit (07-08-2008 08:33:22)
Hors ligne
Merci pour votre retour d'expérience, c'est intéressant.
lethak a écrit:
cet intégrateur peut etre un dev ou un graphiste qui comprend comment fonctionne php.
au pire il apprend
ou encore au pire, le dev se charge de l'intégration des modifications une fois que le graphiste a terminé la partie découpe de sa maquette
ok, ça me rassure qu'on soit tous dans la même galère ^^
Hors ligne
pourquoi galère ?
l'ideal c'est un passionné de flash/css et graphisme en général qui connaît les bases du php.
au contact des devs "purs" il apprend bcp et aquière très vite un niveau plus que nécessaire pour comprendre les vues et le fonctionnement du ZF.
donc l'idéal c'est un vrais graphiste, des vrais devs, et parmis eux des dev peut être moins fort coté php mais passionnés de CSS etc.
L'intégration n'étant pas une activité permanente, le reste du temp il apprend et dev avec l'équipe.
a la fin du projet il aura aquis vrément bcp d'expérience coté php et techniques objets etc, et de l'autre coté l'equipe dispose d'un intégrateur/dev
c'est donc tout benef pour tlm. c'est ce qui c'est passé chez nous et ça semble bien marcher pour le moment
bon après avec plus de moyens et des équipes plus lourdes je ne sait pas comment cela ce passe.
Dernière modification par lethak (07-08-2008 18:45:45)
Hors ligne