Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-04-2010 13:30:26

rugiyat
Nouveau membre
Date d'inscription: 15-04-2010
Messages: 9

l'appel des controlleurs ne marche pas

BOnjour,

je suis en stage, je viens de débuter avec Zend Framework.
Je l'ai téléchargé, installé et configuré en suivant quelques tutoriels du web et le livre 'les cahiers du programmeur '.

voici mon architecture :

reservationSalled-zf
    index.php
    application
        config
            Zend_Config_Ini.ini
        controllers
            LoginController.php
        models
        views
            scripts
                connexion
                    login.phtml
                errors
                    404.phtml
                    500.phtml
                index
    library
        zend
    public
        css
        images
        js

1) Voici le contenu de mon fichier bootstrap 'index.php' du repertoire 'reservationSalles-zf' :


<?php
//on définit le chemin de notre application
define ( 'APPLICATION_PATH', realpath ( dirname ( __FILE__ ) . '/./' ) );

//utilisation de Zend_Loader_Autoloader
require_once 'Zend/Loader/Autoloader.php';


//appel de controleur

try {

    //getInstance() est utilisé pour récupérer une instance du contrôleur frontal.
    $front = Zend_Controller_Front::getInstance();

    //le contrôleur frontal renvoie les exceptions qu'il a rencontrées
    //à l'objet de réponse, nous offrant une possibilité élégante de les gérer.
    $front->throwExceptions(true);

    //setControllerDirectory() est utilisé pour
    //chercher les fichiers de
    //classes de contrôleurs d'action.
    $front->setControllerDirectory(APPLICATION_PATH.'/application/controllers');

    //Dispatch lance notre application, fait le gros travail du contrôleur frontal.
    //Il peut facultativement prendre un objet de requête et/ou un objet de réponse,
    //permettant ainsi au développeur de fournir des objets personnalisés.
    $front->dispatch();

    //Traite les exceptions du contrôleur (généralement 404)

} catch (Zend_Controller_Exception $e) {

    include APPLICATION_PATH.'/application/views/scripts/errors/404.phtml';
    //Traite les autres exceptions du contrôleur

} catch (Exception $e) {

    include APPLICATION_PATH.'/application/views/scripts/errors/500.phtml';

}

2) voici le contenu du controlleur LoginController.php

<?php
class LoginController extends Zend_Controller_Action
{
  function init()
   {
    $this->view->title = "Connexion";
   }
}

je rencontre une erreur, je ne sais pas exactement ce que c'est mais je pense qu'il n'arrive pas à charger le controlleur que j'ai créé.
il m'affiche le message d'erreur que j'ai dans 404.phtml.

Merci de me répondre si vous avez une solution, je suis vraiment embêté.

Hors ligne

 

#2 15-04-2010 14:20:51

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

Re: l'appel des controlleurs ne marche pas

J'aurais ajouter ça dans l'index :

Code:

require_once 'Zend/Loader/Autoloader.php';
[b]$autoloader = Zend_Loader_Autoloader::getInstance();[/b]

En faite ya pas mal d'autre trucs que j'aurais pas fait comme ça... Pour ainsi dire tout, mais vu que chacun fait un peu comme il veux...

Hors ligne

 

#3 15-04-2010 14:23:49

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

Re: l'appel des controlleurs ne marche pas

A retenir aussi (pour architecture MVC) :
-> un controller = un dossier portant le meme nom ds le dossier view donc la tu as un dossier connexion mais aucun controller connexion, et tu as une vue login.phtml mais pas d'action login

ps : utilise les balise pour le code (http://www.z-f.fr/forum/help.php#bbcode) c'est plus pratique pour lire!

Dernière modification par shadypierre (15-04-2010 14:25:59)

Hors ligne

 

#4 15-04-2010 14:26:16

rugiyat
Nouveau membre
Date d'inscription: 15-04-2010
Messages: 9

Re: l'appel des controlleurs ne marche pas

J'ai ajouté. c'est toujours le même problème.
Au fait je l'ai dans le fichier que je teste, mais fausse manœuvre j'ai effacé la partie en mettant ma discussion en ligne.


voici mon architecture :

reservationSalled-zf
    index.php
    application
        config
            Zend_Config_Ini.ini
        controllers
            LoginController.php
        models
        views
            scripts
                connexion
                    login.phtml
                errors
                    404.phtml
                    500.phtml
                index
    library
        zend
    public
        css
        images
        js

1) Voici le contenu de mon fichier bootstrap 'index.php' du repertoire 'reservationSalles-zf' :


<?php
//on définit le chemin de notre application
define ( 'APPLICATION_PATH', realpath ( dirname ( __FILE__ ) . '/./' ) );

//utilisation de Zend_Loader_Autoloader
require_once 'Zend/Loader/Autoloader.php';

//chargement automatique des classes
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('App_');

//appel de controleur

try {

    //getInstance() est utilisé pour récupérer une instance du contrôleur frontal.
    $front = Zend_Controller_Front::getInstance();

    //le contrôleur frontal renvoie les exceptions qu'il a rencontrées
    //à l'objet de réponse, nous offrant une possibilité élégante de les gérer.
    $front->throwExceptions(true);

    //setControllerDirectory() est utilisé pour
    //chercher les fichiers de
    //classes de contrôleurs d'action.
    $front->setControllerDirectory(APPLICATION_PATH.'/application/controllers');

    //Dispatch lance notre application, fait le gros travail du contrôleur frontal.
    //Il peut facultativement prendre un objet de requête et/ou un objet de réponse,
    //permettant ainsi au développeur de fournir des objets personnalisés.
    $front->dispatch();

    //Traite les exceptions du contrôleur (généralement 404)

} catch (Zend_Controller_Exception $e) {

    include APPLICATION_PATH.'/application/views/scripts/errors/404.phtml';
    //Traite les autres exceptions du contrôleur

} catch (Exception $e) {

    include APPLICATION_PATH.'/application/views/scripts/errors/500.phtml';

}

2) voici le contenu du controlleur LoginController.php

<?php
class LoginController extends Zend_Controller_Action
{
  function init()
   {
    $this->view->title = "Connexion";
   }
}

Merci de me répondre si vous avez une solution, je suis vraiment embêté.

Hors ligne

 

#5 15-04-2010 14:33:46

rugiyat
Nouveau membre
Date d'inscription: 15-04-2010
Messages: 9

Re: l'appel des controlleurs ne marche pas

ok,
j'ai modifié l'archi en fonction des regles :

maintenant j'ai ça :

reservationSalled-zf
    index.php
    application
        config
            Zend_Config_Ini.ini
        controllers
            LoginController.php
        models
        views
            scripts
                login
                    login.phtml
                errors
                    404.phtml
                    500.phtml
                index
    library
        zend
    public
        css
        images
        js

et ceci dans le controlleur
<?php
<B> class LoginController extends Zend_Controller_Action
{
    function login()
      {
          $this->view->title = "Connexion";
      }
}</B>

Merci!

Hors ligne

 

#6 15-04-2010 18:24:46

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

Re: l'appel des controlleurs ne marche pas

$loader->registerNamespace('App_'); : inutile tu n'as pas créé de classe dans le dossier library
function login() : remplacer par function loginAction()

Essai de regarder la doc officiel, fait un ptit tour dessus tu trouvera plein de truc intéressant, au début c'est pas facile mais au fur a mesure les choses vont commencer à te sembler plus simple, j'ai moi aussi commencer à utiliser ZF il y a un an en stage.

Ensuite tu fais appel à ta page de la façon suivante :

Code:

localhost/nomProjet/controller/action

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