Adresářová struktura modulů

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

Mám doporučenou adresářovou strukturu pro moduly:

/app/
	FrontModule/
		presenters/
			BasePresenter.php (abstract class Front_BasePresenter extends NPresenter ...)
			HomepagePresenter.php (class Front_HomepagePresenter extends Front_BasePresenter ...)
/app/AdminModule/presenters/

HomepagePresenter se bez problémů načte, ale nevidí vůbec přítomný BasePresenter

Class 'Front_BasePresenter' not found
File: .../www/app/FrontModule/presenters/HomepagePresenter.php

A cache je vyprázdněná.

Editoval maarlin (29. 3. 2011 13:51)

Šaman
Člen | 2665
+
0
-

To by mělo fungovat. U mě bez problémů. Zkontroluj si překlepy a jestli na to nepřijdeš, tak sem hoď zdrojáky obou presenterů a verzi Nette.

maarlin
Člen | 207
+
0
-

Tak jsem to ještě chvíli testoval a zjistil, že to zamlčuje jakékoliv Presentery… kromě samotného NPresenter
Zkrátka cokoliv napíšu jako „rodiče“ té třídy (toho presenteru) zahlásí jako neexistující…
To skoro vypadá na nějaký problém s RobotLoaderem…?

; services
service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE

Šaman napsal(a):

To by mělo fungovat. U mě bez problémů. Zkontroluj si překlepy a jestli na to nepřijdeš, tak sem hoď zdrojáky obou presenterů a verzi Nette.

Na těch zdrojácích opravdu není nic zvláštního…

Když totiž přidám na první řádek HomepagePresenteru

require_once APP_DIR.'/FrontModule/presenters/BasePresenter.php';

tak vše prakticky funguje…

Verze Nette je poslední dostupná (= 2.0-dev (revision 7616569 released on 2011-03-10))

Editoval maarlin (29. 3. 2011 18:03)

Ondřej Brejla
Člen | 746
+
0
-

Možná namespace?

namespace Front;

class BasePresenter extends ...

Edit: tak nic, nevšiml jsem si, že používáš N verzi

Editoval Ondřej Brejla (29. 3. 2011 17:36)

maarlin
Člen | 207
+
0
-

Resolved:
Moje chyba…
v bootstrapu mi chybělo načtení configu skrz NEnvironment::loadConfig(); … čili opravdu nestartoval RobotLoader… :))

Nějakým zběsilým debuggováním se z toho tenhle řádek vytratil…