Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-03-2015 20:01:33

Drame
Nouveau membre
Date d'inscription: 16-03-2015
Messages: 8

Aidez moi a comprendre certaine notion sur ZF2

je veux quelqu'un m'explique certains mot comme invakable , router routes ,factories quels sont leur role ?

Hors ligne

 

#2 16-03-2015 22:55:39

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 607
Site web

Re: Aidez moi a comprendre certaine notion sur ZF2

Bonjour,

Il y a plusieurs choses ici...

Les routes tout d'abord, sont en fait les "points d'entrée" de l'appli, c'est ce qui va permettre au script de dispatcher vers les bonnes classes selon la requête. Une route peut être par exemple literal ("/truc"), segment ("/:truc" avec truc étant un paramètre), hostname ("truc.truc.com")...

Ensuite les factory et les invokables... Ce sont en fait des clés qu'on mets dans la configuration pour paramétrer le service manager. Globalement, les factories sont des classes ou callable permettant de créer... des instances d'autres classes. On s'en sert ici généralement pour passer des services au constructeur de la classe à créer, injectant ainsi les dépendances. Les invokables sont d'autres clés, permettant d'ajouter une classe dans le service manager, pour pouvoir l'utiliser plus tard ($serviceManager->get('anything')). Tu trouveras aussi dans le même genre les alias, qui permettent d'aliaser une autre entrée (que ce soit une factory, un invokable ou autre), les services, les abstract factories et les initializers. Pour plus de détails, vois l'article de Rob Allen : Zend Service Manager : Configuration keys. C'est en anglais, je pourrais traduire si vraiment nécéssaire, le temps me manque un peu ceci dit...

Hors ligne

 

#3 17-03-2015 10:12:19

Drame
Nouveau membre
Date d'inscription: 16-03-2015
Messages: 8

Re: Aidez moi a comprendre certaine notion sur ZF2

Merci bcp Théocrite  c'est genereux de ta part.
Est ce que je peux avoir une explication sur l'imbrication sur cet exemple c'est a dire que signifie chaque imbrication
return array(
     'controllers' => array(
         'invokables' => array(
             'Album\Controller\Album' => 'Album\Controller\AlbumController',
         ),
     ),

     // The following section is new and should be added to your file
     'router' => array(
         'routes' => array(
             'album' => array(
                 'type'    => 'segment',
                 'options' => array(
                     'route'    => '/album[/:action][/:id]',
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                     ),
                     'defaults' => array(
                         'controller' => 'Album\Controller\Album',
                         'action'     => 'index',
                     ),
                 ),
             ),
         ),
     ),

     'view_manager' => array(
         'template_path_stack' => array(
             'album' => __DIR__ . '/../view',
         ),
     ),
);

Hors ligne

 

#4 18-03-2015 10:01:36

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Aidez moi a comprendre certaine notion sur ZF2

Bonjour bonjour,

Déjà je ne suis pas sûr que le post soit dans la bonne partie du forum.
Ensuite on a de la chance zf (1 et 2) est très bien documenté. Tu trouvera pleins d'infos très précises sur le site du framework wink

EDIT : au cas où  http://framework.zend.com/

Dernière modification par flobrflo (18-03-2015 10:02:36)

Hors ligne

 

#5 18-03-2015 11:36:17

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 607
Site web

Re: Aidez moi a comprendre certaine notion sur ZF2

Bonjour!

Merci flobrflo, j'ai déplacé le sujet, j'avais pas fait gaffe...

Drame, je ne vois pas bien ce qu'on peut dire de plus...

Dans router => ... => controller, tu indiques le "service controller" (sa clé précisément) à utiliser en tant que controlleur (Album\Controller\Album). Ce service est défini dans le service manager spécifiques aux controllers, sous la clé "controllers" de la configuration. Là, tu as un invokable (une classe que l'on peut appeler directement, sans passer de paramètres), que tu assignes à la clé précédemment citée. Donc ton controller à appeler dans la route sera ta classe controller.

Ca parait probablement un peu surfait au début, comparé à ce que tu pourrais avoir dans du Laravel par exemple, mais ça permet de changer dynamiquement tes classes, et ça peut par exemple te permettre de remplacer l'invokable par une factory dans laquelle tu passes des dépendances, sans avoir tout ton code existant à changer.

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