PermissionAttributeResolver
Compiles controller PHP attributes into PhalconKit permission config arrays.
The resolver deliberately returns the existing permissions shape instead of introducing a second policy system. Dispatcher security, ACL compilation, and controller behavior attachment can merge the returned fragment into application config and keep using the established enforcement paths.
- Full name:
\PhalconKit\Mvc\Controller\Attributes\PermissionAttributeResolver - This class is marked as final and can't be subclassed
- This class is a Final class
Properties
cache
private static array<class-string,array<string,mixed>> $cache
- This property is static.
Methods
forController
Compile attributes declared on a controller class and its public methods.
public static forController(object|string $controller): array<string,mixed>
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$controller | object|string | Controller instance or class name. |
Return Value:
Permission fragment containing features, roles, controllers, and action-scoped behaviorActions entries.
mergePermissions
Merge a permission fragment into configured permissions.
public static mergePermissions(array<string,mixed> $base, array<string,mixed> $fragment): array<string,mixed>
List values are appended and de-duplicated; associative values are merged recursively. This matches PhalconKit's additive config expectations without mutating the original config object.
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$base | array | Existing permission config. |
$fragment | array | Attribute-derived permission config. |
Return Value:
Merged permissions.
collectAttributes
private static collectAttributes(array& $permissions, \ReflectionClass<object>|\ReflectionMethod $reflection, class-string $controllerClass, array<int,string> $defaultActions): void
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$permissions | array | |
$reflection | \ReflectionClass | |
$controllerClass | class-string | |
$defaultActions | array |
attributeInstances
private static attributeInstances(\ReflectionClass<object>|\ReflectionMethod $reflection, class-string<\PhalconKit\Mvc\Controller\Attributes\T> $attributeClass): array<int,\PhalconKit\Mvc\Controller\Attributes\T>
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$reflection | \ReflectionClass | |
$attributeClass | class-string<\PhalconKit\Mvc\Controller\Attributes\T> |
addControllerAccess
private static addControllerAccess(array<string,mixed>& $permissions, string $section, array<int,string> $keys, class-string $controllerClass, array<int,string> $actions): void
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$permissions | array | |
$section | string | |
$keys | array | |
$controllerClass | class-string | |
$actions | array |
addActionBehaviors
private static addActionBehaviors(array<string,mixed>& $permissions, string $section, array<int,string> $keys, class-string $controllerClass, array<int,string> $actions, array<int,string> $behaviors): void
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$permissions | array | |
$section | string | |
$keys | array | |
$controllerClass | class-string | |
$actions | array | |
$behaviors | array |
mergeValue
private static mergeValue(mixed $base, mixed $incoming): array<array-key,mixed>
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$base | mixed | |
$incoming | mixed |
mergeList
private static mergeList(array<int,mixed> $base, array<int,mixed> $incoming): array<int,mixed>
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$base | array | |
$incoming | array |