salut comment étendre une classe de contrôleur d'une autre classe de contrôleur à l'intérieur d'un module? par exemple: j'ai un module par défaut et un contrôleur defaultController Je veux étendre le contrôleur par défaut dans userController qui est dans le module utilisateur? Je reçois une erreur fatale en essayant de le faireétendre contrôleur dans zend contrôleur
Répondre
Pour une fonctionnalité réutilisable contrôleur, vous devez soit utiliser une classe parente commune pour les deux contrôleurs, extension à la place un contrôleur par un autre, ou vous devez utiliser l'action-aides .
Essayez de regarder aussi cet exemple
Ma struckture
+ applications +
-configs
+ -modules
+ - avant
+ --- + contrôleurs
- -Vue
+ ---- + aides
---- scripts
d'index + ----- +
- utilisateur
+ --- + contrôleurs
--- vues
+ ---- + aides
---- scripts
index + ----- +
bibliothèque
+ publique
application/configs/application.ini
[production]
Autoloadernamespaces[] = "Zend_"
Autoloadernamespaces[] = "My_"
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.modules[] = ''
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultModule = "front"
resources.frontController.throwErrors = false
resources.router.routes.default.route = ":module/:controller/:action/*"
resources.router.routes.default.defaults.module = front
resources.router.routes.default.defaults.controller = index
resources.router.routes.default.defaults.action = index
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
application/bootstr ap.php
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
applications /modules/avant/régulateurs/IndexController.php
<?php
/**
* IndexController
*
* @author
* @version
*/
require_once 'Zend/Controller/Action.php';
class IndexController extends My_Controller_Action_Abstract
{
/**
* The default action - show the home page
*/
public function indexAction()
{
echo('Front Controller');
}
}
applications /modules/user/régulateurs/IndexController.php
<?php
/**
* IndexController
*
* @author
* @version
*/
require_once 'Zend/Controller/Action.php';
class User_IndexController extends My_Controller_Action_Abstract
{
/**
* The default action - show the home page
*/
public function indexAction()
{
echo('User Controller');
}
}
ma User_IndexController de classe de classe d'utilisateur étend Default_IndexController { public function init() { /* Initialiser contrôleur d'action ici */ } de indexAction fonction publique() { // corps d'action // \t si ($ this-> getRequest() -> isPost()) // \t \t {// \t \t \t $ this-> view-> name = $ _POST [ 'nom d'utilisateur']; // \t \t}} classe Default_IndexController extends Zend_Controller_Action {}} – guny
les fonctionnalités communes sont dans le contrôleur par défaut et il est dans le module par défaut. Je veux obtenir ce contrôleur par défaut dans tous les autres contrôleurs de module. J'ai essayé avec l'aide d'action mais je ne peux pas obtenir l'objet Zend_Controller_Request_Abstract dans l'aide d'action. J'essaie de mettre en œuvre la solution décrite dans http://stackoverflow.com/questions/ – guny
http://stackoverflow.com/questions/583636/modular-web-site-with-zend-framework-stack-of-actions – guny
583636/modulaire-web-site-avec-zend-framework-pile-de-actions .. mais j'ai une structure modulaire ... ainsi que mention dans le lien donné j'ai un contrôleur de base dans le module par défaut qui ne peut pas être capable étendre à un autre contrôleur. Y a-t-il une meilleure solution pour cette situation? – guny