ako navrhnut optimalnu strukturu pri modularnej aplikacii?

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

Caute, chcel by som vytvorit modularnu aplikaciu asi v nasledovnej strukture:
Ide mi o to ze by som chcel mat nejaky base modul kde bude basePresenter a BaseComponent
a dalsie moduli by som pridaval do neho, len neviem ako vyriesit Admin a Front bodule kazdeho modulu, Front by nebol ani taky problem, kazdy Modul by mal Front modul a pomocov routy by som to smeroval, ale ako vyriesit spolocny AdminModul, tak aby som mohol manazovat jednotlive moduli v jednom admine,
Neviem ci je tato struktura vhodna, Viete mi poradit ako to riesit?

[BaseModule]
	{BasePresenter}
	LoginPresenter extends BasePresenter
	SecurePresenter extends BasePresenter
	{BaseComponent}
	ComponentA extends BaseComponent
	ComponentB extends BaseComponent

	[ForumModule]
		{BaseForumModulePresenter} extends SecurePresenter
		[FrontModule]
			APresenter extends BaseForumModulePresenter
			BPresenter extends BaseForumModulePresenter
		{BaseForumComponent} extends BaseComponent
		ComponentC extends BaseForumComponent
		ComponentD extends BaseForumComponent

	[CmsModule]
		{BaseCmsModulePresenter} extends SecurePresenter
		[FrontModule]
			APresenter extends BaseCmsModulePresenter
			BPresenter extends BaseCmsModulePresenter
		{BaseCmsComponent} extends BaseComponent
		ComponentE extends BaseCmsComponent
		ComponentF extends BaseCmsComponent

Editoval duskohu (4. 9. 2012 22:31)

David Ďurika
Člen | 328
+
0
-

ja to riesim jednoducho, vsetko na rovnaku uroven:

<?php
[BaseModule]
	...
[ForumModule]
	...
[CmsModule]
	...
[AdminModule]
	...
?>

Editoval achtan (5. 9. 2012 6:48)

duskohu
Člen | 778
+
0
-

Tak nakoniec som si urobil takuto strukturu, ale neviem ako vyriesit jeden problem,
ako dat spolocny layer pre AdminModule a spolocny layer pre FrontModule pre kazdy modul?

/app
  ->presenters
    ->BasePresenter
  ->templates
    ->@admin.latte ???
    ->@front.latte ???
  ->CmsModule
    ->AdminModule
      ->presenters
        ->APresenter extends BasePresenter
      ->templates
        ->@layout.latte ???
    ->FrontModule
      ->presenters
        ->BPresenter extends BasePresenter
      ->templates
        ->@layout.latte ???
  ->ForumModule
    ->AdminModule
      ->presenters
        ->CPresenter extends BasePresenter
      ->templates
        ->@layout.latte ???
    ->FrontModule
      ->presenters
        ->DPresenter extends BasePresenter
      ->templates
        ->@layout.latte ???
jtousek
Člen | 951
+
0
-

Viděl bych to na nějaký abstraktní BaseModule se submoduly AdminModule a FrontModule, kde by byly ty základní věci a ostatní moduly by od nich dědily.

David Ďurika
Člen | 328
+
0
-

layout sa nastavuje sez setLayout mozes to spravit napr v metode beforeRender v nejakom base admin presentery.. to itse pre frontend…

Zdeno1981
Člen | 115
+
0
-

achtan napsal(a):

layout sa nastavuje sez setLayout mozes to spravit napr v metode beforeRender v nejakom base admin presentery.. to itse pre frontend…

imho nemusíš nic nastavovat jestliže chceš mít v každem modulu vlastní @layout.latte, tam kde máš AdminModule

->AdminModule
  ->presenters
    ->APresenter extends BasePresenter
  ->templates
    ->@layout.latte ???

tak modul bude po tobě chtít aby jsi tam měl i šablony, takže si vezme ten @layout.latte s templates v modulu.

a šablony @admin.latte a @fornt.latte tím pádem nebudeš potřebovat.

/app
  ->presenters
    ->BasePresenter
  ->templates
    ->@admin.latte ???
    ->@front.latte ???

Editoval Zdeno1981 (5. 9. 2012 22:27)

thunderbuff
Člen | 164
+
0
-

Já ještě dávám jakýsi „lokální modulový“ base presenter rozšiřující BasePresenter do každého modulu a na něm pak stavím presentery modulu, většinou se to hodí.

David Ďurika
Člen | 328
+
0
-

Zdeno1981 napsal(a):

achtan napsal(a):

layout sa nastavuje sez setLayout mozes to spravit napr v metode beforeRender v nejakom base admin presentery.. to itse pre frontend…

imho nemusíš nic nastavovat jestliže chceš mít v každem modulu vlastní @layout.latte, tam kde máš AdminModule

lenze on prave chcel spolocny layout …

duskohu napsal(a):

Tak nakoniec som si urobil takuto strukturu, ale neviem ako vyriesit jeden problem,
ako dat spolocny layer pre AdminModule a spolocny layer pre FrontModule pre kazdy modul?

Editoval achtan (6. 9. 2012 9:27)