Service of type Nette\Security\User not found, mám vlastní service „user“, vlastní řešení security
- mcmatak
- Člen | 504
Měl bych udělat alias? pravděpodobně tato chyba vzniká ve chvíli, kdy vytvářím šablonu a tam volá presenter tento service, aby mi uživatele přidal do šablony, ale já si uživatele vytvářím sám takto
<?php
user:
factory: [@model, createServiceSessionUser]
public function createServiceSessionUser()
{
$user = new System\Security\SessionUser($this->context);
$user->setExpiration('+ 1 days');
return $user;
}
?>
jak bych to měl řešit? udělat alias?
- Filip Procházka
- Moderator | 4668
Alias ti nepomůže, Nette hledá podle třídy. Správně by jsi měl
Nette\Security\User
podědit.
- mcmatak
- Člen | 504
to nechci moje je jine, nebo mozna by to slo ale nic nemeni na tom ze hleda tuhle service myslim tim nazev teto service, a to ja nechci, moje service se jmenuje „user“ ani nevim jak to udelat aby service byla s temi lomitky
ha chápu, on hledá mezi připojenými services, která dědí nette usera, hmmm a nejde to obejít?
Editoval mcmatak (13. 1. 2012 17:22)
- Filip Procházka
- Moderator | 4668
Trochu se stydím, že ti to radím…
$this->contex->classes['nette\security\user'] = 'user';
- mcmatak
- Člen | 504
<?php
/** @var IUserStorage Session storage for current user */
private $storage;
/** @var IAuthenticator */
private $authenticator;
/** @var IAuthorizator */
private $authorizator;
/** @var Nette\DI\IContainer */
private $context;
?>
takže podědit user nejde? a vlastní si napsat taky nejde? co teď?