Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-03-2010 10:02:57

s2pawn
Nouveau membre
Date d'inscription: 16-03-2010
Messages: 7

[zend_controller]appeler une action d'un controller

Bonjour,

j'aurais souhaiter savoir comment appeler une action d'un controller depuis une classe.
J'ai une classe que je met a disposition a travers un web service, et je souhaiterai que le client puisse appeler une action d'un controller de mon application.
J'ai vu qu'il était possible d'appeler une action d'un controller à partir d'un autre controller grace à la méthode _forward  et donc je me demander si il n'était pas possible que je l'utilise.

J'espère que quelqu'un pourra répondre a mes questions.

merci d'avance

Hors ligne

 

#2 30-03-2010 10:11:00

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [zend_controller]appeler une action d'un controller

A mon avis, ton projet est mal conçu. Tu ne devrais pas avoir à appeler une action sauf dans le context ou tu es déjà dans une action

Déporte le code de ton action dans une classe de Service et appel ce service depuis tes autres classes


----
Gruiiik !

Hors ligne

 

#3 30-03-2010 10:35:15

s2pawn
Nouveau membre
Date d'inscription: 16-03-2010
Messages: 7

Re: [zend_controller]appeler une action d'un controller

En fait, le but du projet est de rendre certains services d'une application existante disponible à travers un web service.
Par exemple retourner une liste de contact. Donc dans mon application de base j'ai un controller contact avec une action load, dont je souhaiterais mettre a disposition des clients grâce à une méthode call(je me suis inspiré du code de magento).

voici le fonctionnement du web service :

le client appel la méthode login( authentification et stock des donné en session, retourne l'id de sassion)
-> appel la méthode call, qui prend en parametre l'id de session, le controller et le nom de l'action qu'il souhaite utiliser

Il n'existe aucune possibilité pour que je puisse appeler l'action d'un controller à partir de ma fonction call?

Je ne connais pas très bien comment fonctionne les controller, mais je me demandais, si il était possible d'écrire une méthode dans un controller, autre qu'une action, dans le but de pouvoir l'appeler depuis ma classe qui contient ma méthode call.

Hors ligne

 

#4 30-03-2010 10:49:21

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [zend_controller]appeler une action d'un controller

retourner une liste de contact ^^ exactement mon appli en cour big_smile

Hors ligne

 

#5 30-03-2010 10:49:27

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [zend_controller]appeler une action d'un controller

Mais pourquoi écrire ton code dans Zend_Controller_Action ?
Tu me décris très bien ce que je t'ai proposé, mais tu ne le mets pas en œuvre.

Tu as un service pour gérer tes contacts  dans ton controller et toutes tes autres actions (au hasard, webservice)

Code:

$contactService = new Contact_Service($paramètre1, $paramètre2);
$contacts = $contactService->findAll(($paramètre1, $paramètre2);

Ton controller est dans un context MVC
Pour moi, ton code de webservice ne doit pas être dans ce contexte
(d'ailleurs, je suppose qu'il ne boostrap pas toutes ton app)

Tu as surement aussi une méthode login dans un service :

Code:

$serviceUser = new Service_User();
$serviceUser->login($paramètre1, $paramètre2);

as utilisé dans le webservice ou dans tes controller


----
Gruiiik !

Hors ligne

 

#6 30-03-2010 11:02:16

s2pawn
Nouveau membre
Date d'inscription: 16-03-2010
Messages: 7

Re: [zend_controller]appeler une action d'un controller

Mon web service ne se trouve pas dans un controller, mais je souhaite utiliser des actions de mon application.
Ce que tu me propose c'est de mettre le code de mes actions dans des classes de services?
Cela implique de revoir l'organisation de l'application, car je ne vais pas dupliquer du code juste pour le web service.



merci pour tes réponses

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