Grzegorz S.

Grzegorz S. PHP developer & IT
trainer

Temat: error controller, moduły i jquery

Walcze z modułami i jquery.
Po przeniesieniu standardowych views, controllers etc do modułu default dostaje błąd:
Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)

Macie jakiś pomysl jak to rozwiązać?
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: error controller, moduły i jquery

Ogolnie odslylam do dokumentacji ale moze ten fragment kodu Ci sie przyda.
Z grubsza ustawia on frontcontroller tak aby "widzial" wszystkie moduly z katalogu np:
application/modules
gdzie moduly moga sie nazywac przykladowa:
application/modules/default
application/modules/admin
application/modules/jakis-modul

public function setupFrontController()
{
// instancja FrontControllera i error reporting
$this->_frontController = Zend_Controller_Front::getInstance();
$this->_frontController->throwExceptions(isset($this->_config->throwExceptions) ? $this->_config->throwExceptions : false);

// sciezka do katalogu z modulami
$controllersPath = CONTROLLERS_DIR;
$modules = array();
if ($handle = @opendir($controllersPath)) {

// odczytuje wszystkie katalogi (moduly) w katalogu z modulami
while ($module = readdir($handle)) {
$path = $controllersPath.'/'.$module;
if ($module{0} != '.' && is_dir($path)) {
$modules[strtolower($module)] = $path;
}
}
closedir($handle);

// $modules to tablica ze sciezkami do poszczegolnych modulow
$this->_frontController->setControllerDirectory($modules);
// ustawia domyslny modul
$this->_frontController->setDefaultModule('default');

} else {
throw new Exception("Cannot load modules from '{$controllersPath}'!");
}

// helpery akcji
Zend_Controller_Action_HelperBroker::addPath(
ROOT_DIR.'/app/intern/FreeCode/Controller/Action/Helper',
'FreeCode_Controller_Action_Helper');

return $this;
}
Grzegorz S.

Grzegorz S. PHP developer & IT
trainer

Temat: error controller, moduły i jquery

Co to za mega hakerstwo rodem z piekła? Chyba ZF nie jest tak skopany żeby takie genialne haki stosować?
A gdzie to znajde w dokumentacji?Grzegorz Szczotka edytował(a) ten post dnia 26.06.10 o godzinie 22:02
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: error controller, moduły i jquery

ogolnie te dwie linijki cie powinny zainteresowac:

-- ustawia sciezki do katalogow z kontrolerami dla modulow
$this->_frontController->setControllerDirectory($modules);

-- ustawia domyslny modul (ktory musi byc wczesniej zdefiniowany np: za pomoca setControllerDirectory)
$this->_frontController->setDefaultModule('default');
Grzegorz S.

Grzegorz S. PHP developer & IT
trainer

Temat: error controller, moduły i jquery

dodałem $this->bootstrap('frontController'); na początku metody w boostrapie i błąd znikł
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: error controller, moduły i jquery

Grzegorz Szczotka:
Co to za mega hakerstwo rodem z piekła? Chyba ZF nie jest tak skopany żeby takie genialne haki stosować?
A gdzie to znajde w dokumentacji?Grzegorz Szczotka edytował(a) ten post dnia 26.06.10 o godzinie 22:02

Dokładnie, strasznie to wygląda! Łukasz popraw to bo nie można patrzeć :P

Moduły w zf to dosłownie pare linijek w configu ini. Ten cast powinien pomóc http://www.zendcasts.com/moving-bootstrap-code-to-conf...
Grzegorz S.

Grzegorz S. PHP developer & IT
trainer

Temat: error controller, moduły i jquery

Grzegorz Szczotka:
dodałem $this->bootstrap('frontController'); na początku metody w boostrapie i błąd znikł
Niestety to powoduje że zamiast porządnej informacji o błędzie mam tylko info "page not found"Grzegorz Szczotka edytował(a) ten post dnia 27.06.10 o godzinie 10:37
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: error controller, moduły i jquery

Grzegorz Szczotka:
Grzegorz Szczotka:
dodałem $this->bootstrap('frontController'); na początku metody w boostrapie i błąd znikł
Niestety to powoduje że zamiast porządnej informacji o błędzie mam tylko info "page not found"Grzegorz Szczotka edytował(a) ten post dnia 27.06.10 o godzinie 10:37

Zend_Controller_Front::getInstance()->throwExceptions(true);

konto usunięte

Temat: error controller, moduły i jquery

Łukasz Cepowski:

Zend_Controller_Front::getInstance()->throwExceptions(true);

albo w application.ini:
resources.frontcontroller.throwexceptions = true
Grzegorz S.

Grzegorz S. PHP developer & IT
trainer

Temat: error controller, moduły i jquery

Dziękuję za wskazówki.
Powtórzyłem cały proces konfiguracji pod linuksem i wszystko ładnie działa.
Magia ;)

Następna dyskusja:

500 Internal Server Error p...




Wyślij zaproszenie do