rhrebecek/nette-identity-doctrine

此包已被弃用且不再维护。未建议替代包。

Nette 2 中实现 IIdentity 实体的集成

安装: 576

依赖者: 0

建议者: 0

安全: 0

关注者: 1

分支: 10

类型:nette-addon

此包尚未发布任何版本,且可用的信息很少。


README

Nette 扩展,用于直接将 Doctrine 2 实体用作 Nette 身份

动机

如果您正在同时使用 Nette 2 和 Doctrine 2,您迟早会想将一些实体也用作身份,因为这样做很实用。

幸运的是,此插件可以帮助您完成这项任务!

要求

  • PHP 5.3.2 或更高版本
  • Nette 2.0 或更高版本
  • Doctrine ORM 2.3 或更高版本

安装

  1. 将 "majkl578/nette-identity-doctrine" 添加到 composer.json 中的依赖项。别忘了运行 composer update
  2. 注册扩展以开始使用此插件。

    1. 在 Nette 2.0 中,在调用 $configurator->createContainer() 之前添加以下调用
    Majkl578\NetteAddons\Doctrine2Identity\DI\IdentityExtension::register($configurator);
    1. 在 Nette 2.1 中,在配置文件中的扩展部分注册它
    doctrine2identity: Majkl578\NetteAddons\Doctrine2Identity\DI\IdentityExtension
    
  3. 删除缓存。

完成了。 ;)

用法

想象一下,您有一个实现认证的应用程序。您拥有的只是一个普通用户实体。现在您想实现认证本身 - 您需要一个身份。您需要做的唯一一件事就是在您的用户实体上实现 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)。