bp/app/Config/Services.php

68 lines
1.8 KiB
PHP

<?php
namespace Config;
use CodeIgniter\Config\BaseService;
/**
* Services Configuration file.
*
* Services are simply other classes/libraries that the system uses
* to do its job. This is used by CodeIgniter to allow the core of the
* framework to be swapped out easily without affecting the usage within
* the rest of your application.
*
* This file holds any application-specific services, or service overrides
* that you might need. An example has been included with the general
* method format you should use for your service methods. For more examples,
* see the core Services file at system/Config/Services.php.
*/
class Services extends BaseService
{
/*
* public static function example($getShared = true)
* {
* if ($getShared) {
* return static::getSharedInstance('example');
* }
*
* return new \CodeIgniter\Example();
* }
*/
/**
* Сервис для проверки прав доступа (RBAC)
*
* @param bool $getShared
* @return \App\Services\AccessService
*/
public static function access(bool $getShared = true)
{
if ($getShared) {
return static::getSharedInstance('access');
}
return new \App\Services\AccessService();
}
/**
* Сервис для rate limiting
*
* @param bool $getShared
* @return \App\Services\RateLimitService|null
*/
public static function rateLimit(bool $getShared = true)
{
if ($getShared) {
return static::getSharedInstance('rateLimit');
}
try {
return \App\Services\RateLimitService::getInstance();
} catch (\Exception $e) {
log_message('warning', 'RateLimitService unavailable: ' . $e->getMessage());
return null;
}
}
}