Konfigurace texy v config.neon

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

Zdravím.

Pokouším se v config.neonu nakonfigurovat Texy coby službu. Bohužel se mi to nedaří.

services:
	texy:
		factory: Texy()
		setup:
			- "$service->allowed['phrase/del'] = TRUE"

Toto končí výjimkou Nette\DI\ServiceCreationException: „Service ‚texy‘: The setup arguments for ‚@texy::$service->allowed['phrase/del‘] = TRUE' expects to be list in range 1, array(0) given.“. Spoléhal jsem na Hospilanovo tvrzení o zápisu přímého PHP kódu, bohužel to ale vypadá, že tomu tak není. Nebo se způsob zápisu jen změnil?

Děkuji předem za reakce.

Editoval uestla (26. 5. 2012 14:46)

bojovyletoun
Člen | 667
+
0
-

Našel jsem tenhle funkční způsob, ale podle mě je to dvojité WTF. definice musí obsahovat otazník, pak se zpracuje jako PHP kód. A otazník se nahradí hodnotami z NeonEntitiy->attributes. Tedy to před závorkami je NeonEntity->value. Pro názornost si otevři http://ne-on.org/

Existuje lepší způsob? Případně, může to někdo, kdo tomu rozumí, přidat do dokumentace?

setup:
	- '$allowed["texy/div"]=?'(87)
Filip Procházka
Moderator | 4668
+
0
-

Za PHP kód se ten řetězec považuje pouze pokud obsahuje otazník. Osobně bych si udělal třídu podobnou této a řešil konfiguraci voláním statických metod :)

uestla
Backer | 796
+
0
-

V podstatě něco na způsob konfigurátoru mám, jen je to poděděná Texy s vlastním nastavením, jen jsem to chtěl v maximální míře přesunout do configu, kam to IMHO patří (alespoň nějaké primitivní direktivy)…

Nicméně otazníková verze funguje, děkuji.

"$service->allowed['phrase/del'] = ?"(TRUE)
David Grudl
Nette Core | 8147
+
0
-

uestla napsal(a):

…jen jsem to chtěl v maximální míře přesunout do configu, kam to IMHO patří…

Ano, patří to do konfigurace, ale nikoliv do souboru config.neon.

Konfigurace nepředstavuje jen tento jeden soubor, je to plnohodnotná vrstva aplikace, skládající se z továrniček, kompilerů, bootstrapu, a samotný config.neon jen nabízí možnost, jak tyto části pohodlně spojit do funkčního celku.

Nicméně otazníková verze funguje, děkuji.

Funguje, ale je to hack, který bych nedoporučoval používat.