vlastny DI konfigurator v Nette 2.3
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Matúš Matula
- Člen | 257
Po nejakej dobe sa vraciam k Nette a chcem updateovat starsi projekt na
verziu 2.3.
Ako prepisat nasledovny kod pre verziu 2.3, teda ako zaregistrovat automaticky
rozsirenia?
Dakujem
class MyConfigurator extends Configurator
{
// ...
/**
* @return ContainerFactory
*/
protected function createContainerFactory()
{
$factory = parent::createContainerFactory();
$factory->onCompile[] = function(ContainerFactory $factory, Compiler $compiler, $config) {
$netteExtension = new NetteExtension();
$this->setNetteExtensionDefaults($netteExtension);
$compiler->addExtension('hasher', new HasherExtension)
->addExtension('nette', $netteExtension)
->addExtension('forgottenPass', new ForgottenPasswordExtension);
$this->onCompile($this, $compiler);
};
return $factory;
}
}
- Matúš Matula
- Člen | 257
pouzil som addConfig()
metodu volanu v konstruktore.. Je to
spravne riesenie?
public function __construct()
{
parent::__construct();
$this->onCompile[] = function(Configurator $sender, Compiler $compiler) {
$compiler->addConfig($this->fixCompatibility([
'latte' => [
'xhtml' => 'no',
],
'session' => [
'cookie_path' => '%baseUrl%',
'expiration' => '%session.lifetime%',
'autoStart' => 'smart',
'save_path' => '%sessionDir%',
'save_handler' => 'files', # for websupport, default memcache
],
'application' => [
'errorPresenter' => 'Front:Error',
],
'database' => [
'default' => [
'dsn' => '%database.driver%:host=%database.host%;dbname=%database.dbname%',
'user' => '%database.user%',
'password' => '%database.password%',
],
],
]));
$compiler->addExtension('hasher', new HasherExtension)
->addExtension('forgottenPass', new ForgottenPasswordExtension);
};
- Tomáš Votruba
- Moderator | 1114
Co dělá metoda setNetteExtensionDefaults()
?
Jinak registruj v config.neon
:
extensions:
hasher: HasherExtension
forgottenPass: ForgottenPasswordExtension
Pokud potřebuješ upravit/předat parametry, tak např.:
hasher:
someParam: someValue
Edit, už vidím. Takto:
latte:
xhtml: no
# atd.
Editoval Tomáš Votruba (17. 5. 2015 17:13)