IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Accéder a un module [ZF 1.9]


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut Accéder a un module
    Bonjour,
    Je veux créer une application ZF ou il y à une partie site et une partie admin.
    Donc dans modules/ j'ai mis un dossier site et un autre admin avec dans ces dossiers views et controllers
    Mon module par défaut est "site", quand je teste l'application le module "site" marche correctement.
    Par contre mon problème c'est que je n'arrive pas à accéder au module "admin"

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    On peut les mettre où on veut à condition que les répertoires soient bien dans l'include_path (et aussi vérifier les permissions il faut r et x je pense).

    Pour le contrôle d'accès le mieux c'est d'utiliser les Acl dans la fonction init() du contrôleur.

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Bonjour,

    En 1.9 (et depuis la 1.8 de mémoire...) la disposition "par défaut" d'un projet Zend Framework est de placer les dossiers du module default (controllers, views...) à la racine du dossier application, et tous les autres modules dans un sous-dossier modules/nom-du-module.

    Ta configuration étant différente de celle-là il nous faudrait quelques éléments de plus pour pouvoir te répondre... Le contenu de ton application.ini serait un début.

    De plus, ça serait pas mal de nous dire en quoi tu ne peux pas accéder au module, quel genre d'erreur te retourne-t-on ? Normalement le contrôleur error devrait t'afficher une belle exception qui pourrait nous être très utile à déterminer le problème.

  4. #4
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Quand je met url.com/admin j'ai une erreur 404.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    [production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    phpSettings.date.timezone = "Europe/Paris"
    includePaths.library = LIBRARY_PATH
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
     
    resources.db.adapter = "MYSQLI"
    resources.db.params.host = "localhost"
    resources.db.params.username = XXX
    resources.db.params.password = XXX
    resources.db.params.dbname = XXX
     
    resources.layout.layoutpath = APPLICATION_PATH "/layouts"
     
    ; initialize front controller resource
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.frontController.defaultControllerName = "index"
    resources.frontController.defaultAction = "index"
    resources.frontController.defaultModule = "site"
    resources.modules[] = ""
     
    ; initialize a view (no options)
    resources.view[] =
     
    [staging : production]
     
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
     
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1

  5. #5
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Je n'ai malheureusement pas de quoi faire des tests sous la main, par contre j'ai peut être une vague idée.

    C'est peut être insignifiant, mais essaye de mettre :
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resources.modules[] = ""
    Comme on peut le voir sur la doc de la ressource modules : http://framework.zend.com/manual/fr/...ources.modules

    Sinon, dans la liste des idées à tester, s'assurer que le contrôleur de ton module admin s'appelle bien Admin_IndexController, etc.

  6. #6
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    J'ai bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class Admin_AdminController extends Zend_Controller_Action {
    Et j'ai modifier dans la config.ini et c'est pareil .

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Si ça donne une erreur 404 ça doit se passer au niveau du .htaccess.

    Ou alors c'est le ErrorController qui l'envoie mais il devrait écrire quelque chose dans les logs s'il est bien configuré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            if ($errors->exception instanceof Zend_Controller_Exception) {
                $log = "notice";
                $this->getResponse()->setHttpResponseCode(404);
                $this->view->title = $this->view->translate("Page not found") ;
                $this->view->message = $this->view->translate("The requested URL was not found on this server.");
            }

  8. #8
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Ha oui en effet j'avais un probléme de .htaccess
    Ca à un peu résolu mon probléme mais pas entièrement.

    Quand je vais sur /admin/ comme je ne suis pas logué sa me redirige vers /admin/login et la j'ai une erreur 404

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Là par contre il faudrait regarder le ErrorController (ou bien les logs si ils sont mis à jour). Peut-être est-ce la vue scripts/admin/login.phtml qui manque ou quelque chose comme cela.

  10. #10
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Dans mon error_log j'ai File does not exist: /home/guillaum/web/video/admin
    Donc c'est bien un problème d'htaccess mais si je fais site.com/site/ ou "site" est le module par défaut ca marche sans probléme.

  11. #11
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Ha j'ai réussit mais j'ai un message d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Class 'Form_AdminLogin' not found in /home/guillaum/web/video/application/modules/admin/controllers/AdminController.php on line 17
    Dans mon controllers j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new Form_AdminLogin();
    Et mon formulaire est dans /modules/admin/forms/AdminLogin.php

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Citation Envoyé par guillaume40 Voir le message
    Et mon formulaire est dans /modules/admin/forms/AdminLogin.php
    Il doit être dans le fichier Form/AdminLogin.php de n'importe quel répertoire enregistré dans l'include_path.

    Si il est dans modules/Admin/Form/AdminLogin il faut appeler la classe Admin_Form_AdminLogin

    Attention aux majuscules!

  13. #13
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    C'est pareil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new Form_AdminLogin();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class Form_AdminLogin extends Zend_Form
    Location : /Form/AdminLogin.php

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Dans tous les cas ça doit être : [Un répertoire de l'include path]/Form/AdminLogin.php

  15. #15
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Je comprend pas car avant quand j'était pas dans des modules je métait tout dans différents controller et çà marchait

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Par défaut
    Après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $frontController = Zend_Controller_Front::getInstance();
    ajouter la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    die(get_include_path()) ;
    Comme ça on peut voir quels répertoires ont été initialisés.

    Ou avant l'appel à bootstrap->run(), ça dépend comment le ZF est démarré....

  17. #17
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    j'ai
    /home/guillaum/web/video/application/../library:/home/guillaum/web/video/library:/home/guillaum/web/video/application:.:/usr/local/php-5.2.8/lib/php

  18. #18
    Membre confirmé Avatar de guillaume40
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 97
    Par défaut
    Voila j'ai résolu mon probléme.

    Dans le bootstrap j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'resourceTypes' => array (
    							'form' => array(
    							'path' => 'forms',
    							'namespace' => 'Form'))
    dans le Zend_Loader_Autoloader_Resource

    Merci de votre aide

  19. #19
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Tu dois donner le chemin de ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Admin_Form_AdminLogin extends Zend_Form

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Module python pour accéder a un serveur CVS
    Par chrix10.2 dans le forum Général Python
    Réponses: 1
    Dernier message: 19/06/2007, 16h42
  2. [VBA-E] Comment accéder à une variable tableau située dans un autre module
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/02/2007, 13h15
  3. Comment accéder aux composants du module de données distant ?
    Par bds2006 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/06/2006, 00h47
  4. Impossible d'accéder au module Stat
    Par JMLD dans le forum XMLRAD
    Réponses: 12
    Dernier message: 09/05/2006, 15h28
  5. [VB.NET] Accéder au formulaire principal depuis un module
    Par smedini dans le forum Windows Forms
    Réponses: 8
    Dernier message: 02/02/2006, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo