Ukázky mapování Nette presenterů 05/02/2018

Jednoduché i složité ukázky jak mapovat Nette presentery.

Kdykoli použijeme v Nette zápis User nebo Front:User či Front:User:Login, Nette musí interně vytvořit instanci presenteru.

V ukázkách se pokusím vysvětlit jak mapování funguje. Detailnější pohled najdete v dokumentaci nebo v testech.

Defaultně máme k dispozici 2 mapování, univerzální a pro Nette modul.

application:
    mapping:
        *: ['', '*Module', '*Presenter']
        Nette: ['NetteModule', '*', '*Presenter']
Syntax Classpath
User UserPresenter
User:Login UserModule\LoginPresenter
Front:User:Login FrontModule\UserModule\LoginPresenter
Nette:User NetteModule\UserPresenter
Nette:User:Login NetteModule\User\LoginPresenter

Pokusíme se dopracovat do stavu, kdy Front:User:Login bude přeložen na App\Front\User\Login\LoginPresenter.


Přidáme prefix App.

application:
    mapping:
        *: ['App', '*Module', '*Presenter']
        Nette: ['NetteModule', '*', '*Presenter']
Syntax Classpath
User App\UserPresenter
User:Login App\UserModule\LoginPresenter
Front:User:Login App\FrontModule\UserModule\LoginPresenter
Nette:User NetteModule\UserPresenter
Nette:User:Login NetteModule\User\LoginPresenter

Odstraníme opakující se slovo Module. Moje oblíbená verze.

application:
    mapping:
        *: ['App', '*', '*Presenter']
        Nette: ['NetteModule', '*', '*Presenter']
Syntax Classpath
User App\UserPresenter
User:Login App\User\LoginPresenter
Front:User:Login App\Front\User\LoginPresenter
Nette:User NetteModule\UserPresenter
Nette:User:Login NetteModule\User\LoginPresenter

A nakonec zduplikujeme název presenteru do namespace.

application:
    mapping:
        *: ['App', '*', '*\*Presenter']
        Nette: ['NetteModule', '*', '*Presenter']
Syntax Classpath
User App\User\UserPresenter
User:Login App\User\Login\LoginPresenter
Front:User:Login App\Front\User\Login\LoginPresenter
Nette:User NetteModule\UserPresenter
Nette:User:Login NetteModule\User\LoginPresenter

Jak je vidno, upravit mapování k našemu obrazu není tak složité. Důležité je si uvědomit, které části se opakují. Více napoví obrázek.