jakubstach/nette-identity-doctrine

Nette 3 中实现 IIdentity 接口的实体集成

安装: 182

依赖者: 0

建议者: 0

安全: 0

星级: 0

关注者: 0

分支: 18

类型:nette-addon

dev-master 2022-11-01 11:50 UTC

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+

安装

  1. 通过 composer 安装

    composer require darkling/nette-identity-doctrine

  2. 在配置文件中的扩展部分注册扩展

    extensions:
        - Darkling\Doctrine2Identity\DI\IdentityExtension
  3. 删除缓存。

完成了。 ;)

使用方法

想象一下,你有一个应用程序,你正在实现身份验证。你只有应用程序中的一个普通用户实体。现在你想实现身份验证本身——你需要有一个身份。你唯一要做的就是在你用户实体上实现 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 请求)。