E 'possibile chiamare la funzione membro di un altro controller in zend framework, se sì allora come?Chiamare la funzione membro di un altro controller nel framework zend?
<?php
class FirstController extends Zend_Controller_Action {
public function indexAction() {
// general action
}
public function memberFunction() {
// a resuable function
}
}
Ecco un altro controller
<?php
class SecondController extends Zend_Controller_Action {
public indexAction() {
// here i need to call memberFunction() of FirstController
}
}
spiegate in che modo posso accedere MemberFunction() dal secondo controller.
Soluzione
Meglio idea è di definire un AppController e rendere tutti i controllori usuali estendere AppController che si estende ulteriormente 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();
}
}
Ora memberFunction
può essere invocato dai controller estendono AppController
come regola di semplice eredità.
Solo una cronaca, ho sicuramente preferisco classi o moduli di configurazione condiviso quando ho bisogno di funzionalità comuni.Tuttavia, mi sono imbattuto in una situazione utilizzando ZF2, dove sarebbe stato molto utile utilizzare un AppController genitore esteso su un paio di altri controller. La tua soluzione ha funzionato bene. In ZF2 hai impostato: "la classe AppController estende AbstractActionController" e il controller figlio sarebbe lo stesso: "la classe FirstController estende AppController" So che ci sono modi migliori per farlo e probabilmente dovrei ripensare la struttura di alcune app, ma funziona. – gregthegeek