Cannot load presenter, soubor ale existuje, na správném namespace

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pidiclovek
Člen | 91
+
0
-

Ahoj,

dnes se mi prostě nedaří. Laděnka mi hází

Cannot load presenter ‚Front:Shop:Default‘, class ‚FrontModule\ShopModule\DefaultPresenter‘ was not found in ‚C:\var\www\projectname\app/FrontModule/ShopModule/presenters/DefaultPresenter.php‘

Což je docela problém, protože všechny náležitosti okolo jsem si pohlídal a za boha nemohu přijít na problém. Soubor na této cestě existuje. Třída je v namespace ShopModule. Cash jsem promazal tak 100×,což implikuje šílenství, už naprosto netuším, kde mi mohla být chyba, routa pro modul také funguje, jak má:

$router[] = $shopRouter = new RouteList('Front:Shop');

$shopRouter[] =  new Route('<lang>/shop/<presenter>/<action>[/<id>]', array(
            'lang' => $defaultLang,
            'presenter' => 'Default',
            'action' => 'default'
        ));

Nette mám ve verzi 2.0beta2-PHP5.3. Projel jsem desítky vláken tady na fóru, zbytečné…
Hledaný presenter, který se opravdu nachází na daném místě v úložišti, vše sedí, včetně velikosti písmenek :(

<?php

namespace ShopModule;


class DefaultPresenter extends \BasePresenter {

    public function actionDefault() {
     ...
    }

    public function renderDefault(){
     ...
    }

}

Prosím poraďtě, v čem by ještě mohl být zakopaný pes, nesnáším, když člověka brzdí takovéhle hlouposti :)

22
Člen | 1478
+
0
-
$router[] = $shopRouter = new RouteList('Front:Shop'); //sem patří jen název modulu
$router[] = $shopRouter = new RouteList('Front');
nanuqcz
Člen | 822
+
0
-

pidiclovek napsal(a):

Hledaný presenter, který se opravdu nachází na daném místě v úložišti, vše sedí, včetně velikosti písmenek :(

Ahoj, nesedí ti namespace :-)

Pokud máš RouteList takto: $router[] = $shopRouter = new RouteList('Front:Shop');, tak presenter musíš mít v namespace FrontModule\ShopModule ;-)

namespace FrontModule\ShopModule;  // <--zde


class DefaultPresenter extends \BasePresenter {
...
pidiclovek
Člen | 91
+
0
-

Ou jééé! :D No s namespace jsem zatím vždy pracoval jen o jedné úrovni, nedošlo mi, že je třeba je vrstvit. Díky moc! Nicméně příspěvek od 22 jsem ne zcela pochopil, co tím chtěl básník říci :)

Editoval pidiclovek (21. 1. 2012 18:47)