instances added god may help

This commit is contained in:
2026-02-23 12:58:19 +01:00
parent 25370a1a55
commit 99db252f60
290 changed files with 9858 additions and 4914 deletions

View File

@@ -127,10 +127,72 @@ function appLogoUrlAbsolute(int $size = 128): string
*/
function appSetting(string $key): ?string
{
if (!class_exists('MintyPHP\\Service\\Settings\\SettingCacheService')) {
if (!class_exists('MintyPHP\\Service\\Settings\\SettingServicesFactory')) {
return null;
}
return \MintyPHP\Service\Settings\SettingCacheService::get($key);
static $settingsFactory = null;
if (!$settingsFactory instanceof \MintyPHP\Service\Settings\SettingServicesFactory) {
$settingsFactory = new \MintyPHP\Service\Settings\SettingServicesFactory();
}
return $settingsFactory->createSettingCacheService()->get($key);
}
/**
* Shared per-request factory for tenant/department/role domain services.
*/
function directoryServicesFactory(): \MintyPHP\Service\Directory\DirectoryServicesFactory
{
static $factory = null;
if (!$factory instanceof \MintyPHP\Service\Directory\DirectoryServicesFactory) {
$factory = new \MintyPHP\Service\Directory\DirectoryServicesFactory();
}
return $factory;
}
/**
* Shared per-request factory for access/permission services.
*/
function accessServicesFactory(): \MintyPHP\Service\Access\AccessServicesFactory
{
static $factory = null;
if (!$factory instanceof \MintyPHP\Service\Access\AccessServicesFactory) {
$factory = new \MintyPHP\Service\Access\AccessServicesFactory();
}
return $factory;
}
/**
* Shared per-request permission gateway wrapper.
*/
function permissionGateway(): \MintyPHP\Service\Access\PermissionGateway
{
return accessServicesFactory()->createPermissionGateway();
}
/**
* Shared per-request factory for audit services.
*/
function auditServicesFactory(): \MintyPHP\Service\Audit\AuditServicesFactory
{
static $factory = null;
if (!$factory instanceof \MintyPHP\Service\Audit\AuditServicesFactory) {
$factory = new \MintyPHP\Service\Audit\AuditServicesFactory();
}
return $factory;
}
/**
* Shared per-request factory for branding services.
*/
function brandingServicesFactory(): \MintyPHP\Service\Branding\BrandingServicesFactory
{
static $factory = null;
if (!$factory instanceof \MintyPHP\Service\Branding\BrandingServicesFactory) {
$factory = new \MintyPHP\Service\Branding\BrandingServicesFactory();
}
return $factory;
}
/**
@@ -138,13 +200,19 @@ function appSetting(string $key): ?string
*/
function appThemes(): array
{
if (!class_exists('MintyPHP\\Service\\Settings\\ThemeConfigService')) {
if (!class_exists('MintyPHP\\Service\\Settings\\SettingServicesFactory')) {
return [
'light' => 'Light',
'dark' => 'Dark',
];
}
return \MintyPHP\Service\Settings\ThemeConfigService::all();
static $settingsFactory = null;
if (!$settingsFactory instanceof \MintyPHP\Service\Settings\SettingServicesFactory) {
$settingsFactory = new \MintyPHP\Service\Settings\SettingServicesFactory();
}
return $settingsFactory->createThemeConfigService()->all();
}
/**
@@ -325,9 +393,12 @@ function appPrimaryCssVars(): string
*/
function appLogoUrl(?int $size = null): string
{
if (class_exists('MintyPHP\\Service\\Branding\\BrandingLogoService') && \MintyPHP\Service\Branding\BrandingLogoService::hasLogo()) {
$query = $size ? '?size=' . (int) $size : '';
return lurl('branding/logo' . $query);
if (class_exists('MintyPHP\\Service\\Branding\\BrandingServicesFactory')) {
$logoService = brandingServicesFactory()->createBrandingLogoService();
if ($logoService->hasLogo()) {
$query = $size ? '?size=' . (int) $size : '';
return lurl('branding/logo' . $query);
}
}
return asset('brand/logo.svg');
}
@@ -338,8 +409,13 @@ function appLogoUrl(?int $size = null): string
function appFaviconUrl(string $file): string
{
$tenantUuid = $_SESSION['current_tenant']['uuid'] ?? '';
if ($tenantUuid !== '' && class_exists('MintyPHP\\Service\\Tenant\\TenantFaviconService')) {
if (\MintyPHP\Service\Tenant\TenantFaviconService::hasFavicon($tenantUuid)) {
if ($tenantUuid !== '' && class_exists('MintyPHP\\Service\\Tenant\\TenantServicesFactory')) {
static $tenantServicesFactory = null;
if (!$tenantServicesFactory instanceof \MintyPHP\Service\Tenant\TenantServicesFactory) {
$tenantServicesFactory = new \MintyPHP\Service\Tenant\TenantServicesFactory();
}
if ($tenantServicesFactory->createTenantFaviconService()->hasFavicon($tenantUuid)) {
return asset('favicon/tenants/' . $tenantUuid . '/favicon/' . ltrim($file, '/'));
}
}