Neexistující authenticator
- wise
- Člen | 161
Ahoj,
stáhnul jsem si novou verzi Nette, napojil jsem to na dibi, ale mám
problém s authenticatorem. Když volám $this->getUser()->login(…)
vyhodí mi to
exception Service of type Nette\Security\IAuthenticator not found.
Authenticator používám ten výchozí, který mám v models, namespace Models. Používám modelLoader.
V configu mám tyto services:
<?php
services:
database:
class: DibiConnection
arguments: [%database%]
modelLoader:
class: ModelLoader
arguments: [@container]
?>
v boostrapu pak:
<?php
$container->addService('authenticator', function ($container) {
return $container->modelLoader->Authenticator;
});
?>
nevíte, v čem by mohl být problém, popř. co sem mám ještě postnout? Díky moc.
Editoval wise (14. 1. 2012 10:41)
- saimons
- Člen | 293
Ja to mam na Nette\Database, ale na dibi by to asi melo vypadat stejne:
services:
database:
...
authenticator: Authenticator( @database )
---------------------
private $database;
class Authenticator extends Object implements NS\IAuthenticator {
public function __construct($database) {
$this->database = $database;
}
Asi by to melo fungovat i autowiringem, ze nebudes v configu predavat parametr @database a v construktoru das neco takoveho pro dibi (nevim presne): __construct(\DibiConnection $database). Doufam, ze je to jak rikam, nemam s tim taky moc zkusenosti. Snad me kdyztak nekdo opravi.
Editoval saimons (12. 1. 2012 21:40)