majkl578 / nette-identity-doctrine
Nette 2 中实现 IIdentity 的实体集成
v2.3-rc1
2015-11-27 13:47 UTC
Requires
- php: >=5.3.2
- doctrine/orm: ~2.3
- nette/di: ~2.2
- nette/http: ~2.2
- nette/security: ~2.2
Requires (Dev)
- kdyby/doctrine: ~2.0
- nette/bootstrap: ~2.2
- phpunit/phpunit: ~4.8
- tracy/tracy: ~2.2
This package is auto-updated.
Last update: 2024-08-29 04:08:55 UTC
README
Nette 扩展,用于将 Doctrine 2 实体直接用作 Nette 身份
动机
如果您同时使用 Nette 2 和 Doctrine 2,您迟早会希望将一些实体也用作身份,因为这很实用。
幸运的是,这个插件可以帮助您完成这项任务!
要求
- PHP 5.3.2+
- Nette 2.2+
- Doctrine ORM 2.3+
安装
-
通过 composer 安装
composer require majkl578/nette-identity-doctrine
-
在配置文件中的扩展部分注册扩展
extensions: doctrine2identity: Majkl578\NetteAddons\Doctrine2Identity\DI\IdentityExtension
-
删除缓存。
完成了。 ;)
使用方法
假设您有一个实现认证的应用程序。您拥有的只是应用程序中用户的常规实体。现在您想实现认证本身 - 您需要一个身份。您唯一需要做的是在您的用户实体上实现 Nette\Security\IIdentity
,这样您就得到以下内容
use Doctrine\ORM\Mapping as ORM; /** * @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 array(); } }
(注意 getRoles() 方法为空。这是由于 IIdentity 的要求。如果您不使用授权,很抱歉,它不能被省略。)
这就完成了。一切都是自动的!您甚至可以使用具有复合标识符的实体!
问题
如果有任何问题,请在此 GitHub 上留下一个问题(或者,更好的是,发送一个 pull request)。