1
0
Files
breadcrumb-the-shire/lib/Service/Access/AccessGatewayFactory.php
2026-03-06 00:44:52 +01:00

36 lines
1.2 KiB
PHP

<?php
namespace MintyPHP\Service\Access;
use MintyPHP\Http\SessionStoreInterface;
use MintyPHP\Service\Audit\AuditServicesFactory;
class AccessGatewayFactory
{
private ?PermissionService $permissionService = null;
private ?PermissionGateway $permissionGateway = null;
public function __construct(
private readonly AccessRepositoryFactory $accessRepositoryFactory,
private readonly AuditServicesFactory $auditServicesFactory,
private readonly SessionStoreInterface $sessionStore
) {
}
public function createPermissionService(): PermissionService
{
return $this->permissionService ??= new PermissionService(
$this->accessRepositoryFactory->createPermissionRepository(),
$this->accessRepositoryFactory->createRolePermissionRepository(),
$this->accessRepositoryFactory->createUserRoleRepository(),
$this->auditServicesFactory->createSystemAuditService(),
$this->sessionStore
);
}
public function createPermissionGateway(): PermissionGateway
{
return $this->permissionGateway ??= new PermissionGateway($this->createPermissionService());
}
}