Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-07-2010 18:27:32

t_penible
Nouveau membre
Date d'inscription: 14-07-2010
Messages: 1

Problème de modules non reconnu

Bonjour à tous,

je débute avec Zend et depuis ce matin, je n'arrive pas à faire marcher une architecture avec modules. Le site en question sera une boutique en ligne, il y a donc une partie "admin" que j'ai pensé gérer comme un module.

Voilà l'architecture de mon site :

application
   --configs
      --config.ini
   --modules
          --default
             --controllers
             --layouts
             --models
             --views
          --admin
             --controllers
             --layouts
             --models
             --views
library
   --zend
public
   --css
   --images
   --js 
   index.php

Le contenu de mon index.php :

Code:

<?php
set_time_limit(0);
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Paris');

// directory setup and class loading
set_include_path('.' . PATH_SEPARATOR . '../library/'
     . PATH_SEPARATOR . '../application/modules/default/models'
     . PATH_SEPARATOR . get_include_path());

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
$loader->suppressNotFoundWarnings(false);

// start Session
Zend_Session::start();

// load configuration
$config = new Zend_Config_Ini('../application/configs/config.ini','general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

// setup database
$db = Zend_Db::factory($config->db); 
Zend_Db_Table::setDefaultAdapter($db); 

$session = new Zend_Session_Namespace('Default');
$registry->set('session', $session);

// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->addModuleDirectory('../application/modules');
$frontController->setControllerDirectory(array(
            'default' => '../application/modules/default/controllers',
            'admin' => '../application/modules/admin/controllers'));

Zend_Layout::startMvc(array('layoutPath'=>'../application/modules/default/layouts', 'layoutAdmin'=>'../application/modules/admin/layouts'));
 
// run!
$frontController->dispatch();

Mon config.ini :

Code:

db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = root    
db.params.password = 
db.params.dbname = test

resources.modules[] =

Le nom de la classe du IndexController du module admin est bien Admin_IndexControler.

Si je fais :
- http://localhost/testZend/public/
-http://localhost/testZend/public/index/index
ça marche

mais impossible d'accéder aux modules :
http://localhost/testZend/default/
http://localhost/testZend/admin/
Erreur 404, not found.

Je croyais que l'url des modules étaient de la forme : module/controleur/action/ ? Je ne comprend pas ce qui me manque pour faire marcher les modules, j'ai l'impression qu'ils ne se chargent pas.

Merci de votre aide smile

Hors ligne

 

#2 30-07-2010 10:38:59

ggouhier
Membre
Date d'inscription: 21-05-2010
Messages: 23

Re: Problème de modules non reconnu

Je te conseil de générer ton projet avec zend tool, voici un tutoriel très bien fait :
http://blog.lyrixx.info/zend/comment-bi … zend_tool/

Ensuite pour l'architecture, voici comment j'aurai procédé dans ton dossier application, j'aurai créer seulement un module admin, le frontend se basant sur l'architecture de base.
Puis dans ton bootstrat il suffit de changer le module par défaut en fonction de la session.
Lorsqu'une session est ouverte c'est le module admin, à l'inverse c'est le default.

Pour que les modules soient pris en compte il faut que tu ajoute ces 2 lignes de code dans application.ini :

Code:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

Hors ligne

 

#3 30-07-2010 11:16:27

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Problème de modules non reconnu

@t_penible :
C'est pas http://localhost/testZend/default/

Tu as oublié le /public/ dans l'URL
Sinon effectivement le moduleDirectory à ajouter.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

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