1
0
Files
breadcrumb-the-shire/modules/addressbook/lib/Module/AddressBook/Service/AddressBookServicesFactory.php

42 lines
1.5 KiB
PHP
Raw Normal View History

2026-02-23 12:58:19 +01:00
<?php
namespace MintyPHP\Module\AddressBook\Service;
2026-02-23 12:58:19 +01:00
2026-03-04 15:56:58 +01:00
use MintyPHP\Service\CustomField\CustomFieldServicesFactory;
2026-02-23 12:58:19 +01:00
use MintyPHP\Service\Directory\DirectoryServicesFactory;
use MintyPHP\Service\Tenant\TenantScopeService;
2026-02-23 12:58:19 +01:00
use MintyPHP\Service\User\UserServicesFactory;
class AddressBookServicesFactory
{
private ?AddressBookService $addressBookService = null;
2026-03-04 15:56:58 +01:00
public function __construct(
private readonly UserServicesFactory $userServicesFactory,
private readonly DirectoryServicesFactory $directoryServicesFactory,
private readonly CustomFieldServicesFactory $customFieldServicesFactory,
private readonly TenantScopeService $tenantScopeService
2026-03-05 11:17:42 +01:00
) {
}
2026-02-23 12:58:19 +01:00
public function createAddressBookService(): AddressBookService
{
if ($this->addressBookService !== null) {
return $this->addressBookService;
}
2026-03-04 15:56:58 +01:00
$userFactory = $this->userServicesFactory;
$directoryFactory = $this->directoryServicesFactory;
2026-02-23 12:58:19 +01:00
return $this->addressBookService = new AddressBookService(
$userFactory->createUserAccountService(),
$userFactory->createUserAssignmentService(),
$directoryFactory->createTenantService(),
$directoryFactory->createDepartmentService(),
$directoryFactory->createRoleService(),
$this->tenantScopeService,
$this->customFieldServicesFactory->createUserCustomFieldValueService(),
$userFactory->createUserAvatarService()
2026-02-23 12:58:19 +01:00
);
}
}