rhrebecek / nette-identity-doctrine
此包已被弃用且不再维护。未建议替代包。
Nette 2 中实现 IIdentity 实体的集成
此包尚未发布任何版本,且可用的信息很少。
README
Nette 扩展,用于直接将 Doctrine 2 实体用作 Nette 身份
动机
如果您正在同时使用 Nette 2 和 Doctrine 2,您迟早会想将一些实体也用作身份,因为这样做很实用。
幸运的是,此插件可以帮助您完成这项任务!
要求
- PHP 5.3.2 或更高版本
- Nette 2.0 或更高版本
- Doctrine ORM 2.3 或更高版本
安装
- 将 "
majkl578/nette-identity-doctrine
" 添加到 composer.json 中的依赖项。别忘了运行composer update
。 注册扩展以开始使用此插件。
- 在 Nette 2.0 中,在调用
$configurator->createContainer()
之前添加以下调用
Majkl578\NetteAddons\Doctrine2Identity\DI\IdentityExtension::register($configurator);
- 在 Nette 2.1 中,在配置文件中的扩展部分注册它
doctrine2identity: Majkl578\NetteAddons\Doctrine2Identity\DI\IdentityExtension
- 在 Nette 2.0 中,在调用
删除缓存。
完成了。 ;)
用法
想象一下,您有一个实现认证的应用程序。您拥有的只是一个普通用户实体。现在您想实现认证本身 - 您需要一个身份。您需要做的唯一一件事就是在您的用户实体上实现 Nette\Security\IIdentity
,这样您就得到如下内容
/** * @ORM\Entity */ class UserEntity implements IIdentity { /** @ORM\Column(type="integer") @ORM\Id @ORM\GeneratedValue */ private $id; /** @ORM\Column */ private $name; ... other properties, getters & setters /* implementation of IIdentity */ public function getId() { return $this->id; } public function getRoles() { return []; } }
(注意 getRoles() 方法是空的。这是由于 IIdentity 的要求。如果您不使用授权,不幸的是,它不能被省略,抱歉。)
就是这样。一切都是自动的!您甚至可以使用具有复合标识符的实体!
问题
如果遇到任何问题,只需在此 GitHub 上留下问题(或者,更好的是,发送一个 pull request)。