manGoweb / Skeleton

:grapes: Skeleton for Nette 2.2 and onward
Tajná zpráva :P
Other
1 stars 0 forks source link

[Question] Jak vytvořit nový modul #7

Closed tsusanka closed 10 years ago

tsusanka commented 10 years ago

Rád bych vytvořil nový modul (admin rozhraní), ale nejsem si úplně jistej jak na to.

V RouteFactory je funkce createRouter(), která vrací RouteList. RouteListu můžu dát do konstruktoru parametr modulu, ale Factory vytváří pouze jediný. Jak tedy vytvořit dva? Každý modul musí mít svůj RouteList, ne? Mám v trochu hokej, díky za info.

// cc @Mikulas @JanTvrdik @hrach

Mikulas commented 10 years ago

Jestli se nepletu tak ten parametr v routelist je jenom prefix, ale ty samotné routy můžou mít další s prefixem jakoby zanořené moduly, tzn. když tam bude třeba

new Route('<module>/<presenter>/<action>[/<id>]', 'Frontpage:Homepage:default');

tak to bude fungovat taky, ne? Otázka je jak si s tím poradí skeleton při hledání té třídy a šablony, to jsem myslim nezdokumentoval a už si to nepamatuju :D ale to v pohodě dáme dohromady.

Btw na co chceš použít ve we modul?

tsusanka commented 10 years ago

Bude tam administrační rozhraní, tak to mi přišlo vhodné dát do separé modulu.

No on ten modul nebude povinný, takže zkouším

$router[] = new Route('[<module>/]<presenter>/<action>[/<id>]', ':Homepage:default');

a to dostávám error Missing module in route definition..

Mikulas commented 10 years ago

To jo, ale tak to potom ale musí být tohle ne? Teď si nejsem jistý jestli je možné mít modul a presentery na stejné úrovni, nikdy jsem to nepoužil

$router[] = new Route('[<module>/]<presenter>/<action>[/<id>]', 'Front:Homepage:default');

Tohle v rámci skeletonu ještě dořeším, ale na WE bych to jako modul nedával (jeden presenter api + max jednotky presenterů na admin, podle me neni nezbytne davat moduly)

tsusanka commented 10 years ago

To bych ale pak musel mít Front module, což momentálně nemám. Error stejný.

No mě to přijde dobré do budoucna. Např. nyní bude přihlášení jen do adminu, ale později bude možná i nějaké návštěvnické. A pak je určitě lepší mít AdminModule/SignPresenter, FrontModule/SignPresenter než nějaké FrontSignPresenter, FrontSignPresenter. Prostě to je hezky strukturované.

Mikulas commented 10 years ago

Zatim mi neprijde ze je to potreba, ale klidne to na moduly rozdel :)

Temer jiste pak ale budes potrebovat mit kazdy presenter v nejakem modulu. (takze pak mimo jine pujde napsat ta routa)

Mikulas commented 10 years ago

@tsusanka uz je to kdyztak ready, zdokumentovano tady https://github.com/Clevis/Skeleton#module-support