Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daaarkling/nette-identity-doctrine
Integration of Doctrine entities implementing IIdentity in Nette 3
https://github.com/daaarkling/nette-identity-doctrine
Last synced: 24 days ago
JSON representation
Integration of Doctrine entities implementing IIdentity in Nette 3
- Host: GitHub
- URL: https://github.com/daaarkling/nette-identity-doctrine
- Owner: Daaarkling
- License: mit
- Created: 2019-01-06T21:01:53.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-09T20:29:14.000Z (over 4 years ago)
- Last Synced: 2024-10-12T15:21:14.794Z (24 days ago)
- Language: PHP
- Size: 15.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Nette 3 & Doctrine 2 entities
Nette addon for using Doctrine 2 entities directly as Nette identity. Based on [Majkl578/nette-identity-doctrine](https://github.com/Majkl578/nette-identity-doctrine)
## Motivation
If you are using Nette 3 and Doctrine 2 together, you will sooner or later
want to use some of your entities also as identity, because it is practical.Fortunately, this addon is here to help you with this task!
## Requirements
- PHP 7.4+
- Nette 3
- Doctrine ORM 2.6+## Installation
1. Install via composer:
`composer require darkling/nette-identity-doctrine`
2. Register extension in your configuration file in extensions section:
```yaml
extensions:
- Darkling\Doctrine2Identity\DI\IdentityExtension
```3. Delete cache.
You're done. ;)
## Usage
Imagine you have an application where you're implementing authentication.
All you have is a regular entity for the user in your application.
Now you want to implement the authentication itself - you need to have an identity.
The only thing you have to do is to implement `Nette\Security\IIdentity` on your user entity,
so you get something like this:```php
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 [];
}
}
```(Notice the empty getRoles() method. That is due to the requirement of IIdentity.
If you don't use authorization, unfortunately, it can't be omitted, sorry.)That's all. Everything is automatic!
And you can even use entities with composite identifiers!## Issues
In case of any problems, just leave an issue here on GitHub (or, better, send a pull request).