2010-11-04 7 views
4

J'ai créé un module (personne) dans mon projet Zend. Puis créé un contrôleur (PersonController.php) dans ce module. Puis créé une action (addAction) dans ce contrôleur. Mais quand j'utilise http://myproject.dev/person/person/add alors il ne montre rien.Comment activer mes modules dans Zend Framework?

http://myproject.dev/ pointe vers le dossier public de mon zendproject donc quand j'utilise http://myproject.dev/ il m'a montré la page d'index avec succès. Mais cela ne fonctionne pas avec mes modules.

J'ai vu quelque part que nous devons configurer application.ini et Bootstrap.php pour dire au zend notre répertoire du module mais je ne sais pas comment. Quelles sont ces déclarations ??

Mon répertoire courant est comme ceci:

zendproject| 
      |-> application 
          |-> models 
          |-> modules 
            |-> person 
               |->controllers 
                   |-> PersonController.php 
+0

avez-vous utiliser Zend_Tool pour créer les modules? – piddl0r

+0

Oui, j'ai utilisé Zend_Tool pour créer un module, un contrôleur et même une action. – Awan

+0

Quelles sont les configurations de votre serveur, par exemple LAMP/WAMP/Windows + IIS? –

Répondre

11

Essayez de faire les choses suivantes:
1) application.ini

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

2) Créer Bootstrap dans chaque module:

class Person_Bootstrap extends Zend_Application_Module_Bootstrap { 
} 
+0

C'était une faute de frappe dans ma question. Mon dossier de module est dans le dossier de l'application zend. – Awan

+0

@Awan, voir mes modifications. – pltvs

2

Je pense que vous pouvez simplement ajouter la configuration du module ci-dessous sur votre application.ini

resources.modules[] = 

tout simplement.

2

Le chemin de code pour le faire, dans votre Bootstrap , serait quelque chose comme ceci:

$frontController = Zend_Controller_Front::getInstance(); 
$frontController->throwExceptions(true); 
$frontController->returnResponse(true); 
$frontController->setControllerDirectory(
      array(
       'default' => '/path/to/application/controllers', 
       'person' => 'path/to/application/person/controllers' 
      ) 
     ); 
$response = $frontController->dispatch(); 
$response->sendResponse(); 

Voir http://framework.zend.com/manual/en/zend.controller.front.html (en particulier, recherchez la sous-position « setControllerDirectory() et addControllerDirectory »)

0

Je ne sais pas pourquoi mais je devais simplement ajouter la ligne ci-dessous seulement pour le faire fonctionner correctement:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"