File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/main/lib/access/filter/factory/filtercontrollerfactory.php
Back
<?php namespace Bitrix\Main\Access\Filter\Factory; use Bitrix\Main\Access\AccessibleController; use Bitrix\Main\Access\Filter\AccessFilter; use Bitrix\Main\Access\Filter\FilterFactory; use ReflectionClass; class FilterControllerFactory implements FilterFactory { protected const SUFFIX = 'Filter'; public function createFromAction(string $action, AccessibleController $controller): ?AccessFilter { $className = $this->getClassName($action, $controller); if (!$className || !class_exists($className )) { return null; } $ref = new ReflectionClass($className); if ($ref->implementsInterface(AccessFilter::class)) { return $ref->newInstance($controller); } return null; } protected function getClassName(string $action, AccessibleController $controller): ?string { $action = explode('_', $action); $action = array_map(fn($el) => ucfirst(mb_strtolower($el)), $action); return $this->getNamespace($controller) . implode($action) . static::SUFFIX; } protected function getNamespace(AccessibleController $controller): string { $class = new \ReflectionClass($controller); $namespace = $class->getNamespaceName(); return $namespace.'\\'.static::SUFFIX.'\\'; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings