Nette 2.3: konfigurace databáze s vlastní ConnectionFactory
- Eda
- Backer | 220
Ahoj.
Mám dotaz ohledně konfigurace databáze v Nette 2.3, pokud využívám vlastní ConnectionFactory. Zatím mám v sekci servcices tohle:
database.default.connection: @connectionFactory::create
database.default.structure: Nette\Database\Structure(@database.default.connection, ...)
database.default.conventions: Nette\Database\Conventions\DiscoveredConventions(@database.default.structure)
database.default.context: \Nette\Database\Context(@database.default.connection, @database.default.structure, @database.default.conventions, ...)
A funguje to. Ale s tím zápisem nejsem moc spokojený, zapisuju do něj totiž to, co DatabaseExtension dělá jinak samo. Nedá se nějakým způsobem přepsat jen connection? Zkoušel jsem uvést jen řádek:
database.default.connection: @connectionFactory::create
Ale to bohužel nefunguje.
Nemáte někdo nějaký tip, jak ten zápis zjednodušit a využít tak
potenciál DatabaseExtension?
Díky :-)
- Eda
- Backer | 220
Tohle jsem zkoušel, ale nefungovalo to. Teď jsem se ale podrobněji díval do kódu DatabaseExtension a našel jsem tuhle podmínku: https://github.com/…xtension.php#L53
V configu v sekci database jsem totiž předtím měl jenom tohle (parametry databáze by tam byly zbytečné, protože o připojení se stará ConnectionFactory a ta si je bere odjinud):
database:
default:
Ale tím pádem uspěla ta podmínka, která přidávání defaultní
databáze do konfigu přerušila.
Takže jsem tam „aspoň něco“ přidal:
database:
default:
autowired: true
A už to krásně funguje.
A díky za ten alias, to byla rychlost :-)
- David Grudl
- Nette Core | 8228
Aha. No to spojení nevytváří, pokud tam není žádný údaj. Vlastně jsi tam mohl uvést cokoliv, když si to poté přepíšeš.
- Eda
- Backer | 220
Ještě jedna drobnost: když to zaregistruji tímto způsobem:
database:
default:
autowired: true
services:
database.default: @connectionFactory::create
Vidím v Tracy-baru dva stejné panely databáze: http://awesomescreenshot.com/03d4haynfb
Editoval Eda (25. 2. 2015 0:19)