Rozšíření existující moduly – presentery

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Václav Pávek
Backer | 100
+
0
-

Zdravím, chtěl bych se optat jak by jste řešili rozšiřování modulů a dílčích komponent jako jsou formuláře.

Potřebuji docílit toho abych mohl rozšiřovat moduly/komponenty aniž bych musel zasahovat do původních modulů. Také bych toto rád co nejvíce automatizoval.

Příklad: mám CMS kde moduly jsou v namespace Modules např. pro modul statických stránek Modules\PageStatic.

Otázka zní jak přehledně umožnit rozšíření funkcionality těchto modulů resp. i formulářů apod. Líbilo by se mi kdyby se podařilo vytvořit něco jako ve frameworku Kohana – https://kohanaframework.org/…kohana/files. Tj. pokud bych chtěl rozšířit funkcionalitu tak bych použil stejný namespace ale v jiném umístění.

Napadlo mě upravit si RobotLoader aby pokud již danou třídu má své class mapě tak aby nekončil chybou. Případně přepsat PresenterFactory (aby prvně hledal v custom a poté v origin) nebo případně použít DI\Extension – zde bych potřeboval navést správným směrem.

Předem díky za váš čas, názory a vaše zkušenosti s touto problematikou.

David Matějka
Moderator | 6445
+
+1
-

Tj. pokud bych chtěl rozšířit funkcionalitu tak bych použil stejný namespace ale v jiném umístění.

na to ani nemysli :) (btw, podobne otresny napad byl jeden z mych prvnich prispevku na foru) :D

Pro presentery si uprav PresenterFactory, aby to hledalo ten presenter nejdriv v NS treba App a az potom v puvodnim – pak muzes v aplikaci dedit prezentery z toho puvodniho modulu. Pro inspiraci (nebo to rovnou muzes pouzit, snad si poradis bez doc) muzes kouknout na librette/presenter-factory

Pro zbytek (sluzby, komponenty…) si vystacis s upravou nastaveni DIC, v configu vzdy prepises definici konkretni sluzby, aby pouzivala jinou implementaci

Václav Pávek
Backer | 100
+
0
-

@DavidMatějka, děkuji za odpověď