¿Es posible llamar a la función miembro de otro controlador en zend framework? Si es así, ¿cómo?Función de miembro llamante de otro controlador en zend framework?
<?php
class FirstController extends Zend_Controller_Action {
public function indexAction() {
// general action
}
public function memberFunction() {
// a resuable function
}
}
Aquí hay otro controlador
<?php
class SecondController extends Zend_Controller_Action {
public indexAction() {
// here i need to call memberFunction() of FirstController
}
}
Por favor, explique cómo puedo acceder memberFunction() del segundo controlador.
Solución
mejor idea es definir un AppController y hacer que todos los controladores habituales para extender AppController que se extiende más Zend_Controller_Action.
class AppController extends Zend_Controller_Action {
public function memberFunction() {
// a resuable function
}
}
class FirstController extends AppController {
public function indexAction() {
// call function from any child class
$this->memberFunction();
}
}
Ahora memberFunction
se puede invocar desde los controladores que se extienden AppController
como regla de la herencia simple.
Como digo, definitivamente prefieren clases o módulos de configuración compartida cuando necesito una funcionalidad común.Sin embargo, me encontré con una situación usando ZF2, donde sería bastante útil usar un AppController principal que se extiende a otros dos controladores. Tu solución funcionó bien. En ZF2 configura: "AppController clase extiende AbstractActionController" y el controlador hijo sería el mismo: "clase FirstController extends AppController" Sé que hay mejores formas de hacerlo y probablemente debería replantear la estructura de algunas aplicaciones, pero funciona. – gregthegeek