Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-12-2012 01:14:56

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Etendre un controller d'un module tier

Bonjour/soir,

J'essaye de comprendre comment étendre un controller d'un module tier. J'utilise le module Zfcuser, j'aimerais étendre l'action index du controller "UserController".
Quelle est donc la meilleure manière pour réaliser cela ?

Pour l'instant ce que je peux faire c'est changer la route et crée mon controller, mais je voulais savoir si il y'aurait un moyen plus propre avec ZF2

Merci


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#2 23-12-2012 12:39:13

imsouf
Membre
Date d'inscription: 19-12-2012
Messages: 12

Re: Etendre un controller d'un module tier

Bonjour,
Je ne connais pas très bien Zend, mais tu semble vouloir étendre une méthode ? C'est la classe entière qu'il faut étendre.
As-tu tout simplement essayer de créer ton controller et d'etendre le controller souhaité avec extends ? Puis de redéfinir la method index ?

Apres s'il y a un moyen plus "class" :p  de le faire avec Zend, je laisse la parole aux spécialistes

Hors ligne

 

#3 23-12-2012 13:36:30

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Etendre un controller d'un module tier

Bonjour,

Oui c'est ce que je fais pour l'instant, en utilisant extends.

En fait en cherchant je suis tombé sur ça, partie change a controller :
http://stackoverflow.com/questions/8783 … rm-classes
Mais apparemment ce n'est plus valable pour ZF 2.0.

Donc quelle est la bonne practice.


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#4 23-12-2012 21:19:36

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Etendre un controller d'un module tier

Ca dépend de ce que tu souhaites changer. Si c'est une vue, il faut mieux tout simplement surcharger la vue en spécifiant ta vue à l'index de la vue que tu souhaites surcharger, dans ton template_map (je sais pas si c'est très clair u_u).

Si c'est bien un comportement, logiquement étendre le contrôleur devrait suffire, et évidemment changer l'alias du controleur.

Par exemple, si ton module dans lequel tu étends ton controleur s'appelle "Application", tu créés ton contrôleur en étendant celui de ZfcUser, puis dans le fichier module.config.php du module "Application", tu ajoutes ça :

Code:

[lang=php]
'controllers' => array(
        'invokables' => array(
            'zfcuser' => 'Application\Controller\UserController',
        ),
    ),

Ce qui fait que lorsque ZfcUser va récupérer son contrôleur avec la clé "zfcuser", il va maintenant récupérer non plus le contrôleur de base de ZfcUser, mais le tiens.

Pré-requis pour que ceci fonctionne : il faut que ton module, dans le fichier application.config.php, soit déclaré APRES celui de ZfcUser, afin que la config de ton module écrase celle de ZfcUser.

Hors ligne

 

#5 24-12-2012 14:22:14

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Etendre un controller d'un module tier

Bonjour,

Ok par contre ça implique de changer le nom du controller UserController, ainsi que de copier les fichiers views sur notre application.

Merci
Joyeux noél à tous.


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

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