Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-10-2011 12:58:14

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Controller non trouvé

Bonjour,

J'ai commencé à batir un petit site a partir d'une architecture modulaire "default" et "admin"

Lorsque je vais sur les controllers du module "default", tout fonctionne bien mais si dans un de ces controllers, j'essaie de créer un objet d'un autre controller du module, et bien la classe n'est pas trouvée.
Alors je dois faire un require du fichier en question pour pouvoir créer l'objet...

Je précise que pour le module default, je ne met pas de prefixe... UserController et non default_UserController...

Voyez vous d'ou vient mon problème ?

Hors ligne

 

#2 20-10-2011 13:27:09

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

Re: Controller non trouvé

mais si dans un de ces controllers, j'essaie de créer un objet d'un autre controller du module, et bien la classe n'est pas trouvée.

Je ne comprend pas cette phrase hmm

Hors ligne

 

#3 20-10-2011 14:05:57

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Re: Controller non trouvé

oups sad

Par exemple si dans une action du controller item, je fais un new categoryController et bien j'obtiens comme message que la classe category n'est pas trouvée.

Hors ligne

 

#4 20-10-2011 16:00:02

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Controller non trouvé

Euh... Pourquoi faire un new sur un autre controller ?

Tu devrais pas plutôt utiliser l'helpeur forward ?

Quel est ton but ?

Hors ligne

 

#5 20-10-2011 16:51:39

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

Re: Controller non trouvé

J'avoue que la je comprend pas, à mon avis tu n'a pas bien compris l'utilisation des contrôleurs.

Hors ligne

 

#6 20-10-2011 20:11:53

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Re: Controller non trouvé

Effectivement, j'ai encore du mal avec la POO

En fait, précisément dans mon controlleur auth dans la méthode login, je teste si l'autorisation de se loguer via Facebook est à "oui" et si elle est activée, j'insére le bouton de login facebook qui se trouve dans mon controlleur "facebook"

Code:

          if (Zend_Registry::get('config')->facebook->allowlogin == true){
                //Show Facebook Login Button
                require(APPLICATION_PATH . '/modules/default/controllers/FacebookController.php');
                 $this->view->fbLogin = FacebookController::setFacebookLoginUrlAction();
           }

Si je ne met pas le "require" et bien j'ai une page blanche...

L'interet est simplement de mettre tout ce qui concerne l'identification Facebook dans une classe facebook independante du controlleur d'identification principale "auth"

Hors ligne

 

#7 20-10-2011 20:55:38

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Controller non trouvé

un bouton dans un controleur ?
un bouton c'est dans une vue
on controleur controle
une vue présente
un modèle traite
c'est le B.A.BA de MVC

ce n'est pas un PB de POO c'est on problème de pattern que tu n'as pas.

A+JYT
PS: on peut faire du MVC sans faire de la POO

Hors ligne

 

#8 21-10-2011 08:47:23

siriu
Membre
Date d'inscription: 17-05-2011
Messages: 55

Re: Controller non trouvé

Bonjour,

Merci pour votre réponse smile

Mon controlleur d'identification "traditionnelle" authController.php fonctionne parfaitement bien mais en plus je souhaites proposer l'identification sur mon site via l'API de Facebook donc je fais appel au SDK Php de Facebook associé au SDK Javascript de Facebook pour faire apparaitre le bouton.

Lorsqu'une personne se connecte via Facebook sur mon site, si cette' personne ne s'est jamais connecté au site  je lui crée un compte dans ma table users de ma BD puis je la connecte au site sinon je la connecte directement au site.

Pour faire marcher l'identification via Facebook, j'utilise plusieurs "méthodes / action" et par soucis de clarté, je souhaitais les mettre dans une classe différente à authController.php nommée "facebookController.php".

L'identification "traditionnelle" s'affiche avec ma vue "login" du controller Auth et sur cette même vue je fais apparaitre ou non le bouton d'identification "Facebook"  (s'il est activé depuis mon fichier de configuration.ini).

Le bouton étant avec un javascript propriétaire de Facebook, il me crée un warning dans Zend Studio sauf si je le stock dans le controller d'ou mon idée de le mettre dans facebookController dans une méthode static.

J'appelle dans l'action login de authController la méthode static de FacebookControlleur et je stock le bouton dans une variable pour l'afficher dans ma vue login de AuthController.

Mais pour pouvoir utiliser cette méthode static je suis obligé de faire un require de la classe facebookController...

Si je ne fais pas ce require Zend Studio lui trouve bien la classe mais si je lance le site, j'ai une page blanche...

Voilà toute ma démarche qui est celle d'un junior en PHP et qui attend avec impatience vos précieux conseils pour apprendre à faire les choses correctement smile

Peut être que je devrais mettre les méthodes liée à Facebook plutôt dans une classe de ma librairie "my" ?

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