Wyciągam wszystkie włosy z głowy ... Szukałem każdej nitki, byłbym wdzięczny, gdyby ktoś mógł wskazać mi działający przykład.codeigniter + HMVC cross module call controller-> method
accroding do doc: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc mogę wywołać inną module-> Regulator użyciu
modules::run('module/controller/method', $params);
modules::load('module/controller/method', $params);
or
$this->load->module('module/controller');
$this->controller->method();
Problem: "metoda()" nie jest tzw. tylko konstruktor kontrolera jest wywoływany za każdym razem.
Celem jest zbudowanie samodzielnych MVC jako modułów i używanie ich przez inne kontrolery. Ale bez względu na to, co robię, wywołuje ona tylko konstruktora, metoda nie jest wywoływana. Zacząłem używać HMVC kilka tygodni temu, czy tęskniłem za czymś w dokumencie lub nie było używane w ten sposób?
Oto konfiguracja:
modules
|--ztest1
| |--controller/c1.php
|--ztest2
|--controller/c2.php
class C1 extends MX_Controller {
function __construct() {
parent::__construct();
}
function index() {
Modules::run('ztest2/c2/testc2/');
//Modules::load('ztest2/c2/testc2/');
//$this->load->module('ztest2/c2/testc2/');
//$this->c2->testc2();
}
}
class C2 extends MX_Controller {
function __construct() {
parent::__construct();
echo __FILE__." // ".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
function testc2(){
echo __FILE__." // ".__CLASS__."/".__FUNCTION__.PHP_EOL;
}
}
output:
/app/modules/ztest2/controllers/c2.php // C2/__construct
dodatkowa uwaga: nie ma błędu lub ostrzeżenia ze skryptu. Po prostu cicho dzwoni do konstruktora.
Dzięki za link! Otrzymałem tę wiadomość: Kontroler modułu nie działa: ztest2/c2/testc2/ – Reed
Twój problem został rozwiązany? –
Jest rozwiązany. Moje odpowiedzi znalazłem poniżej. Przyjąłem twoją odpowiedź, ponieważ pomogło mi to usunąć błąd. Nie wiedziałem, że HMVC wyświetla błąd tylko do zalogowania. dzięki! – Reed