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)