Files
core/tests/Resources/TestModels/User.php
T
Vassyli e82e72a183 Abstract actor model has more straightforward API
The implicit API requirements via class properties has been changed to relay now on abstract methods that the extending class must implement.
2017-01-19 10:18:27 +01:00

65 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace LotGD\Core\Tests\Ressources\TestModels;
use Generator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\Table;
use Lotgd\Core\Models\Actor;
/**
* @Entity
* @Table("TestUsers")
*/
class User extends Actor #implements PermissionableInterface {
{
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
/** @Column(type="string", length=50); */
private $name;
/** @OneToMany(targetEntity="UserPermissionAssociation", mappedBy="owner", cascade={"persist", "remove"}, orphanRemoval=true) */
protected $permissions;
public function __construct()
{
$this->permissions = new ArrayCollection();
}
public function getId(): int
{
return $this->id;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name)
{
$this->name = $name;
}
public function getActorName(): string
{
return "User #".$this->id." (".$this->name.")";
}
protected function getPermissionAssociationClass(): string
{
return UserPermissionAssociation::class;
}
protected function getPermissionAssociations(): Generator
{
foreach ($this->permissions as $permission) {
yield $permission;
}
}
}