68 lines
1.8 KiB
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;
|
|
}
|
|
}
|
|
}
|