jakubstach / nette-identity-doctrine
Nette 3 中实现 IIdentity 接口的实体集成
dev-master
2022-11-01 11:50 UTC
Requires
- php: >=7.4
- doctrine/orm: ^2.6
- nette/di: ^3.0
- nette/http: ^3.0
- nette/security: ^3.0
Requires (Dev)
- consistence/coding-standard: ^3.10
- nette/bootstrap: ^3.0
- nettrine/orm: ^0.7
- phpstan/phpstan: ^0.12
- phpstan/phpstan-nette: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^7.5
- slevomat/coding-standard: 6.2 as 6.0.99
- tracy/tracy: v2.9.4
Suggests
- nettrine/orm: Well-integrated Doctrine2 ORM for Nette Framework
This package is not auto-updated.
Last update: 2024-10-02 18:53:46 UTC
README
Nette 扩展,用于直接将 Doctrine 2 实体用作 Nette 身份。基于 Majkl578/nette-identity-doctrine
动机
如果你正在使用 Nette 3 和 Doctrine 2,你迟早会想将你的某些实体也用作身份,因为这样做很实用。
幸运的是,这个插件可以帮助你完成这项任务!
要求
- PHP 7.1+
- Nette 3
- Doctrine ORM 2.6+
安装
-
通过 composer 安装
composer require darkling/nette-identity-doctrine
-
在配置文件中的扩展部分注册扩展
extensions: - Darkling\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 []; } }
(注意 getRoles() 方法是空的。这是由于 IIdentity 的要求。如果你不使用授权,很遗憾,它不能省略,抱歉。)
就这样。一切自动完成!你甚至可以使用具有复合标识符的实体!
问题
如果有任何问题,请在这里的 GitHub 上留下问题(或者,更好的是,发送一个 pull 请求)。