Vytvoření extension s presentery
- Chuchy
- Člen | 77
Ahoj,
chtěl bych se zeptat jestli už tu někdo řešil vytvoření Extension s presentery, respektive přesunutí části logiky aplikace do „modulu“.
Co vlastně potřebuju, chtěl bych z aplikace vyjmout administrativní část k článkům a vytvořit z toho ArticleExtension, do kterého bych přesunul presentery, šablony, formuláře, service a doctrine, prostě všechno co se toho týká s vlastnim routováním.
Neřešil tohle někdo a dokázal by mě někdo někam nasměrovat, dokumentace mi stačila k tomu to tam všechno přesunout, ale už nevím jak namapovat ty presentery na router, tak aby to fungovalo.
předem všem díky
- Chuchy
- Člen | 77
Tak už mi to funguje, jenomže tu mám pár nedostatků, které bych potřeboval pomoct vyřešit
mám
class ArticleExtension extends CompilerExtension
{
public function loadConfiguration()
{
$this->compiler->loadConfig(__DIR__ . '/config/config.neon');
}
}
a v config.neon
services:
- ArticleExtension\Doctrine\Entity\Article\ArticleFactory
- ArticleExtension\Doctrine\Entity\Article\ArticleRepository
- ArticleExtension\Doctrine\Entity\ArticleView\ArticleViewFactory
- ArticleExtension\Doctrine\Entity\ArticleView\ArticleViewRepository
- ArticleExtension\Doctrine\Entity\Category\CategoryFactory
- ArticleExtension\Doctrine\Entity\Category\CategoryRepository
jenomže mapování presenteru a doctrine entity, musím dát do configu aplikace, jinak mi to hází chybu
Cannot load presenter ‚Article:Article‘, class ‚App\ArticleModule\Presenters\ArticlePresenter‘ was not found.
application:
errorPresenter: Front:Error
mapping:
*: App\*Module\Presenters\*Presenter
Article: ArticleExtension\Presenters\*Presenter
nettrine.orm.annotations:
mapping:
App\Doctrine\Entity: %appDir%/Doctrine/Entity
ArticleExtension\Doctrine\Entity: %appDir%/Extensions/ArticleExtension/Doctrine/Entity
lze to nějak elegantně udělat i v config pro extension?
- Marek Bartoš
- Nette Blogger | 1274
Musíš to celé otočit, v extension nelze spolehlivě načítat konfigurace jiných extension.
Zaregistruj si v neonu ve svém rozšíření vše tak, jak bys to udělal v aplikaci a místo registrace extension v neonu si v bootstrapu přidej neon.
- Marek Bartoš
- Nette Blogger | 1274
Tak jako tak je to registrace na jeden řádek :) A nemusíš nic dělat jinak, než v aplikaci