Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
J'aurais ajouter ça dans l'index :
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
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
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
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
$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 :
localhost/nomProjet/controller/action
Hors ligne
Pages: 1