/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Console/Attribute/Interact.php
51 строка
1 KB
Nicolas Grekas
Dont use ->getDeclaringClass() when ->class is enough
17 дек 2025, 23:42
17 дек 2025, 23:42
93fd60b
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Attribute; use Symfony\Component\Console\Exception\LogicException; #[\Attribute(\Attribute::TARGET_METHOD)] class Interact implements InteractiveAttributeInterface { private \ReflectionMethod $method; /** * @internal */ public static function tryFrom(\ReflectionMethod $method): ?self { /** @var self|null $self */ if (!$self = ($method->getAttributes(self::class)[0] ?? null)?->newInstance()) { return null; } if (!$method->isPublic() || $method->isStatic()) { throw new LogicException(\sprintf('The interactive method "%s::%s()" must be public and non-static.', $method->class, $method->getName())); } if ('__invoke' === $method->getName()) { throw new LogicException(\sprintf('The "%s::__invoke()" method cannot be used as an interactive method.', $method->class)); } $self->method = $method; return $self; } /** * @internal */ public function getFunction(object $instance): \ReflectionFunction { return new \ReflectionFunction($this->method->getClosure($instance)); } }