Router a vlastni namespace

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

Zdravím,

chci se zeptat, zda je nějaká cesta, jak donutit router, aby používal mé vlastní namespace. Chtěl bych odrážet hierarchickou strukturu složek vedoucích ke třídě.

Např. tedy:

namespace MTS\App\FrontModule\Presenters;
namespace MTS\App\FrontModule\Models\Entities;
namespace MTS\App\Presenters;

Koukal jsem, že na https://github.com/…694986f21012 existuje konfigurační attribut mapping, který by to mohl umožňovat… Bude v nějaké brzké verzi nette implementován?

Děkuji.

enumag
Člen | 2118
+
0
-

V Nette implementován je, jen nevím zda i ve stable verzi, používám master z githubu.

darthcz
Člen | 113
+
0
-

Ano, šlo mi právě o tu stable verzi, kde ještě není. Nerad bych do projektu implementoval vývojovou verzi. Chtěl jsem se právě zeptat na zařazení do stable verze.

Zatím jsem dočasně použil to mapování do vlastního presenterFactory.

enumag
Člen | 2118
+
0
-

Ve stable verzi se to objeví s vydáním 2.1 final. Což nikdo neví kdy nastane byť se má za to že většina podstatných věcí chystaných do 2.1 je už hotová.

Vlastní PresenterFactory je v tomto případě správná volba. ;-)

o5
Člen | 416
+
0
-

Zajímalo by mě, jak se toho docílí v aktuálním masteru.

Mám presenter App\Modules\Web\Presenters\HomePagePresenter a zkouším to nějak takto:

services:
    nette.presenterFactory:
        setup:
            - setMapping({'Front': ['App\\Modules\\Web\\Presenters', '*Presenter']})

1) nevím jak se má správně zapsat v neonu takovéhle pole: to bude zřejmě dobrý formát
Otázka tedy zní, jak má mapping správně vypadat?

Odpovím si sám :) Možná se to bude někomu hodit.

services:
    nette.presenterFactory:
        setup:
            - setMapping({'Front': 'App\Modules\Web\Presenters\*Presenter'})

Editoval o5 (6. 3. 2014 12:06)

Jan Tvrdík
Nette guru | 2595
+
0
-

o5: Jde to řešit ještě jednodušeji.

nette:
	application:
		mapping:
			Front: 'App\Modules\Web\Presenters\*Presenter'
o5
Člen | 416
+
0
-

@Jan Tvrdík: To mi v nette 2.2-dev nefunguje.

Jan Tvrdík
Nette guru | 2595
+
0
-

@o5: Tak to zkus znova =) Koukni schválně, jak vypadá vygenerovaný SystemContainer. Mělo by to vygenerovat v podstatě identický kód, jak ten tvůj zápis.

o5
Člen | 416
+
0
-

@Jan Tvrdík: jo jasně máš pravdu, moje chyba, funguje :) Používám nakonec místo zde zmíněného FrontWeb a to pak byl opravdu problém mezi klávesnicí a židlí :))

o5
Člen | 416
+
0
-

Koukám, že to jde ještě jednodušeji :)) viz

nette:
    application:
        mapping:
            *: 'App\Modules\*\Presenters\*Presenter'