Constrain types to PermissibleInternal on internal permission subscription methods

This commit is contained in:
Dylan K. Taylor 2021-06-12 21:28:19 +01:00
parent bfcf4a25d4
commit 8e1d27a719
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
3 changed files with 12 additions and 12 deletions

View File

@ -78,7 +78,7 @@ class Permission{
}
/**
* @return Permissible[]
* @return PermissibleInternal[]
*/
public function getPermissibles() : array{
return PermissionManager::getInstance()->getPermissionSubscriptions($this->name);

View File

@ -35,8 +35,8 @@ class PermissionAttachment{
private $permissions = [];
/**
* @var Permissible[]
* @phpstan-var array<int, Permissible>
* @var PermissibleInternal[]
* @phpstan-var array<int, PermissibleInternal>
*/
private $subscribers = [];
@ -67,8 +67,8 @@ class PermissionAttachment{
}
/**
* @return Permissible[]
* @phpstan-return array<int, Permissible>
* @return PermissibleInternal[]
* @phpstan-return array<int, PermissibleInternal>
*/
public function getSubscribers() : array{ return $this->subscribers; }
@ -148,14 +148,14 @@ class PermissionAttachment{
/**
* @internal
*/
public function subscribePermissible(Permissible $permissible) : void{
public function subscribePermissible(PermissibleInternal $permissible) : void{
$this->subscribers[spl_object_id($permissible)] = $permissible;
}
/**
* @internal
*/
public function unsubscribePermissible(Permissible $permissible) : void{
public function unsubscribePermissible(PermissibleInternal $permissible) : void{
unset($this->subscribers[spl_object_id($permissible)]);
}
}

View File

@ -40,7 +40,7 @@ class PermissionManager{
/** @var Permission[] */
protected $permissions = [];
/** @var Permissible[][] */
/** @var PermissibleInternal[][] */
protected $permSubs = [];
public function getPermission(string $name) : ?Permission{
@ -68,14 +68,14 @@ class PermissionManager{
}
}
public function subscribeToPermission(string $permission, Permissible $permissible) : void{
public function subscribeToPermission(string $permission, PermissibleInternal $permissible) : void{
if(!isset($this->permSubs[$permission])){
$this->permSubs[$permission] = [];
}
$this->permSubs[$permission][spl_object_id($permissible)] = $permissible;
}
public function unsubscribeFromPermission(string $permission, Permissible $permissible) : void{
public function unsubscribeFromPermission(string $permission, PermissibleInternal $permissible) : void{
if(isset($this->permSubs[$permission])){
unset($this->permSubs[$permission][spl_object_id($permissible)]);
if(count($this->permSubs[$permission]) === 0){
@ -84,7 +84,7 @@ class PermissionManager{
}
}
public function unsubscribeFromAllPermissions(Permissible $permissible) : void{
public function unsubscribeFromAllPermissions(PermissibleInternal $permissible) : void{
foreach($this->permSubs as $permission => &$subs){
unset($subs[spl_object_id($permissible)]);
if(count($subs) === 0){
@ -94,7 +94,7 @@ class PermissionManager{
}
/**
* @return Permissible[]
* @return PermissibleInternal[]
*/
public function getPermissionSubscriptions(string $permission) : array{
return $this->permSubs[$permission] ?? [];