Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
je veux quelqu'un m'explique certains mot comme invakable , router routes ,factories quels sont leur role ?
Hors ligne
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
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
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
EDIT : au cas où http://framework.zend.com/
Dernière modification par flobrflo (18-03-2015 10:02:36)
Hors ligne
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