Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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
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
Hors ligne
oups
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
Euh... Pourquoi faire un new sur un autre controller ?
Tu devrais pas plutôt utiliser l'helpeur forward ?
Quel est ton but ?
Hors ligne
J'avoue que la je comprend pas, à mon avis tu n'a pas bien compris l'utilisation des contrôleurs.
Hors ligne
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"
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
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
Bonjour,
Merci pour votre réponse
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
Peut être que je devrais mettre les méthodes liée à Facebook plutôt dans une classe de ma librairie "my" ?
Hors ligne