Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-10-2010 22:58:40

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Blog webdesign anonymation

Hello,

http://blog.anonymation.com/

Nous ouvrons officiellement le blog anonymation qui traitera de plusieurs sujets, tous liés au développement et plus spécifiquement au web : graphisme, communication, développement web, architecture web, méthodes agiles etc... et bien sûr quelques idées et implémentations autour du Zend Framework.

J'espère que nous arriverons à vous faire partager notre passion pour les sujets abordés.

Concernant Zend Framework, je commence avec deux sujets :

- plutôt classique, une resaucée sur la structure d'un projet
- et une implémentation du concept d'injection de dépendances avec Zend_Application.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 21-10-2010 16:17:15

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Salut,

Juste pour signaler un changement de plan, nous avons séparés les sujets sur deux blogs.

Un qui traitera du webdesign et de la communication, la même url : http://blog.anonymation.com/

Un autre consacré au développement et architecture web : http://code.anonymation.com/

Ce sera plus clair et plus adapté, les publics pouvant être vraiment très différents.
Maintenant il ne me reste plus qu'à m'y mettre et à pousser pour sortir quelques articles.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 22-10-2010 15:17:49

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Hello,

Un petit billet sur les aides d'actions :
Les aides d’action (helpers), factorisation, avoir le réflexe


A+ !


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 29-10-2010 10:22:06

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#5 23-11-2010 12:48:32

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Hello,

Deux nouveaux articles concernant les moteurs de templates.

Utiliser un moteur de template avec PHP, pourquoi ?
Utiliser Twig avec Zend Framework 1.1x


A+

Dernière modification par Delprog (23-11-2010 12:58:25)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#6 23-11-2010 13:19:03

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Blog webdesign anonymation

Hello,

Je me suis moi aussi penché sur Twig la semaine dernière. J'ai un soucis que je n'ai pu résoudre "proprement". Je travaille sur un très gros projet (tourne depuis quelque années 10 modules + 50 contrôleurs + 250 views). Je souhaiterais intégrer Twig pour les améliorations à venir. Le ViewRenderer est actif. Par quelle manière pourrait-on "proprement" choisir le moteur de rendu au moment du rendu de l'action tout en maintenant le ViewRenderer paramétré par une ressource d'application ?

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#7 23-11-2010 13:30:54

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Salut,

Tu veux conserver PHP pour le rendu de certaines vues et activer ponctuellement le moteur twig ?

Si c'est bien ça, tu dois pouvoir le faire sans trop de difficultés.

Dans l'intégration que j'ai fait, la ressource se nomme twig et non pas view, tu peux donc toujours déclarer et configurer la ressource view dans application.ini en plus de twig.

Mais seulement la 2ème ressource (dans l'ordre du fichier ini) sera filée au viewrenderer, on peut donc considérer que ce sera le moteur par défaut.

Dans le conteneur tu pourras récupérer indifféremment chaque ressource :

Code:

$twigView = $bootstrap->getResource('twig');
//ou
$zfView = $bootstrap->getResource('view');

Avec ça tu peux refiler l'objet de vue qui t'interesse au viewrenderer dans ton contrôleur (pour avoir le bootstrap, $bootstrap = $this->getInvokArg('bootstrap')), à la demande, ou pourquoi pas via une aide d'action.

Tu dis que ça fait quelques années que le projet tourne, je suppose que tu n'as peut-être pas Zend_Application, dans ce cas il faut bien que tu isoles les deux objets de vue dans le registre et tu pourras les récupérer dans tes contrôleurs de la même manière.


C'est que de la théorie hein, à tester bien sur. Après si c'est propre ? je te laisse juger :p


A+ benjamin.

Dernière modification par Delprog (23-11-2010 13:31:47)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#8 23-11-2010 13:34:00

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Blog webdesign anonymation

Réponse parfaite. Merci smile


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#9 23-11-2010 13:37:47

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Petite précision, quand je parle d'utiliser éventuellement une aide d'action, ce serait du genre :

Code:

public function monAction()
{
    $this->_helper->viewEngine('twig');
}

Le helper ferait ce que j'explique plus haut, c'est à dire récupérer la ressource dans le conteneur et la filer au viewRenderer.

J'aurais même tendance à créer une aide d'action qui étend l'aide viewRenderer juste pour ajouter la méthode qui fait ça.

Code:

$this->_helper->viewRenderer->setEngine('twig');

A+


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#10 23-11-2010 18:10:33

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Blog webdesign anonymation

Bon ben c'est pas aussi simple que ça d'intégrer un switch des moteurs de rendu. sad

Quand j'ai des preDispatch (par ex) qui affecte des variables à la vue par défaut et que je change le moteur de rendu dans l'action du contrôleur, c'est malheureusement trop tard. Le moteur n'a pas toutes les variables. Il faut donc que je remonte le choix plus tôt dans la boucle de distribution.

Je vais me pencher sur symfony2 pour voir comment ils gèrent ça.


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#11 23-11-2010 18:21:30

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Je vais te lancer une idée comme ça, mais tu cries pas d'accord smile

Tu vois comment fonctionne l'aide d'action contextSwitch ? Tu peux déclarer une propriété public $contexts qui est un tableau assignant des contextes à chaque action.

Pourquoi ne pas utiliser le même principe pour les rendus ?

Code:

public $renderContexts = array(
    'mon-action' => 'twig'
);

Et tu enregistres ton aide d'action dans le bootstrap.

Dans ce cas, vu que tu connais déjà la route et donc l'action qui va être invoquée, tu peux déjà paramétrer ton viewRenderer à l'avance depuis ton aide d'action.

J'ai déjà utilisé ce type d'action pour certains trucs, comme déterminer les verbes http acceptés par les actions par exemple (je le donne en exemple ici : http://code.anonymation.com/zend-framew … e-reflexe/).

Ça me semble jouable.

Dans symfony 2 il n'y a pas de hook du type preDispatch ou postDispatch, le moteur de rendu est déterminé tout simplement en fonction de l'extension de la vue à rendre vu que le rendu est explicite. J'ai déjà fouillé un peu les sources de SF2 :p

A+ benjamin.

Dernière modification par Delprog (23-11-2010 18:23:52)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#12 23-11-2010 19:14:17

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Blog webdesign anonymation

A noter que le problème ne se posera pas avec ZF2, car la refonte de Zend\View a découplé le composant en (entre autres) un container de variable et un moteur de rendu (PhpRenderer) => http://git.zendframework.com/?a=tree&am … /Zend/View

Concernant les contextes+aide d'action, j'étais sur cette voie mais par des annotations/reflection + aide d'action ce qui serait moins performant que ta solution mais plus élégant (à mon sens wink).


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#13 23-11-2010 21:23:40

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Rhaaa les annotations, j'ai peur, je sens qu'on va pas y couper dans quelques temps !
Sinon, oui, ça serait plus élégant smile

Merci pour le lien sur Zend View 2 et merci d'en avoir parlé dans le webinar smile

J'étais déjà en train de partir dans un délire pour gérer ça. Remarque ça n'empêche pas.
Je pensais désolidariser la gestion du rendu de la vue et étendre Zend View pour accepter plusieurs moteurs. Ça ne demanderait finalement pas grand chose.

Une interface du genre :

Code:

interface Ano_View_Engine_Interface 
{
    public function render($template);
}

class Ano_View_Engine_Twig implements Ano_View_Engine_Interface
{
    public function __construct(array $options = array())
    {}

    public function render($template)
    {
         // $this->getEnvironment()->...... 
    }
}

Et ajouter des méthodes à Zend_View :

Code:

public function addEngine($key, Ano_View_Engine_Interface $engine)
{}

public function hasEngine($key)
{}

public function run()
{
    // $engine = déterminer le moteur en fonction de l'extension par ex.
    $this->getEngine($engine)->render($template);
}

Dans la config ça pourrait donner un truc du genre:

Code:

resources.view.engine.twig.class = "Ano_View_Engine_Twig"
resources.view.engine.twig.options.charset = "utf-8"
resources.view.engine.twig.options.strict_variables = 0
resources.view.engine.twig.options.cache = APPLICATION_PATH "/../var/cache/twig"
resources.view.engine.twig.options.auto_reload = 1
resources.view.engine.twig.options.debug = 0
resources.view.engine.twig.options.trim_blocks = 1
resources.view.engine.twig.viewPaths[] = APPLICATION_PATH "/views/scripts"
resources.view.helperPath.My_View_Helper_ = "My/View/Helper"

Du coup Twig n'aurait plus besoin d'être un objet view.

Je sais pas si ça vaut le coup mais je vais peut-être apporter des modifications dans ce sens là, je réfléchis smile


A+ benjamin.

Dernière modification par Delprog (23-11-2010 21:26:48)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#14 14-12-2010 11:21:35

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Hello.

Quelques améliorations sur l'intégration de Twig avec ZF 1.x. Il est maintenant possible d'utiliser plusieurs moteurs de rendu, et ça ne devrait pas être un problème d'en ajouter de nouveaux (autres que Twig ou Phtml).

Merci à mikaelkael pour ses retours et sa contribution smile

L'article à ce sujet : Amélioration de l’intégration ZF et Twig
Le repo à jour : http://github.com/benjamindulau/Ano_ZFTwig


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#15 16-12-2010 18:06:30

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Blog webdesign anonymation

Hello.

Quelques retours sur Magento : Magento, alors, c’est comment ?


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

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