PKµªZÅσH Route.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Routing\Attribute; /** * Annotation class for @Route(). * * @Annotation * @NamedArgumentConstructor * @Target({"CLASS", "METHOD"}) * * @author Fabien Potencier * @author Alexander M. Turek */ #[\Attribute(\Attribute::IS_REPEATABLE | \Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD)] class Route { private ?string $path = null; private array $localizedPaths = []; private array $methods; private array $schemes; /** * @param array $requirements * @param string[]|string $methods * @param string[]|string $schemes */ public function __construct( string|array|null $path = null, private ?string $name = null, private array $requirements = [], private array $options = [], private array $defaults = [], private ?string $host = null, array|string $methods = [], array|string $schemes = [], private ?string $condition = null, private ?int $priority = null, ?string $locale = null, ?string $format = null, ?bool $utf8 = null, ?bool $stateless = null, private ?string $env = null ) { if (\is_array($path)) { $this->localizedPaths = $path; } else { $this->path = $path; } $this->setMethods($methods); $this->setSchemes($schemes); if (null !== $locale) { $this->defaults['_locale'] = $locale; } if (null !== $format) { $this->defaults['_format'] = $format; } if (null !== $utf8) { $this->options['utf8'] = $utf8; } if (null !== $stateless) { $this->defaults['_stateless'] = $stateless; } } /** * @return void */ public function setPath(string $path) { $this->path = $path; } /** * @return string|null */ public function getPath() { return $this->path; } /** * @return void */ public function setLocalizedPaths(array $localizedPaths) { $this->localizedPaths = $localizedPaths; } public function getLocalizedPaths(): array { return $this->localizedPaths; } /** * @return void */ public function setHost(string $pattern) { $this->host = $pattern; } /** * @return string|null */ public function getHost() { return $this->host; } /** * @return void */ public function setName(string $name) { $this->name = $name; } /** * @return string|null */ public function getName() { return $this->name; } /** * @return void */ public function setRequirements(array $requirements) { $this->requirements = $requirements; } /** * @return array */ public function getRequirements() { return $this->requirements; } /** * @return void */ public function setOptions(array $options) { $this->options = $options; } /** * @return array */ public function getOptions() { return $this->options; } /** * @return void */ public function setDefaults(array $defaults) { $this->defaults = $defaults; } /** * @return array */ public function getDefaults() { return $this->defaults; } /** * @return void */ public function setSchemes(array|string $schemes) { $this->schemes = (array) $schemes; } /** * @return array */ public function getSchemes() { return $this->schemes; } /** * @return void */ public function setMethods(array|string $methods) { $this->methods = (array) $methods; } /** * @return array */ public function getMethods() { return $this->methods; } /** * @return void */ public function setCondition(?string $condition) { $this->condition = $condition; } /** * @return string|null */ public function getCondition() { return $this->condition; } public function setPriority(int $priority): void { $this->priority = $priority; } public function getPriority(): ?int { return $this->priority; } public function setEnv(?string $env): void { $this->env = $env; } public function getEnv(): ?string { return $this->env; } } if (!class_exists(\Symfony\Component\Routing\Annotation\Route::class, false)) { class_alias(Route::class, \Symfony\Component\Routing\Annotation\Route::class); } PKbªZÖšŸ]] AsCommand.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Attribute; /** * Service tag to autoconfigure commands. */ #[\Attribute(\Attribute::TARGET_CLASS)] class AsCommand { public function __construct( public string $name, public ?string $description = null, array $aliases = [], bool $hidden = false, ) { if (!$hidden && !$aliases) { return; } $name = explode('|', $name); $name = array_merge($name, $aliases); if ($hidden && '' !== $name[0]) { array_unshift($name, ''); } $this->name = implode('|', $name); } } PKíhªZ¯Š(ÕùùAsMonologProcessor.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Monolog\Attribute; /** * A reusable attribute to help configure a class or a method as a processor. * * Using it offers no guarantee: it needs to be leveraged by a Monolog third-party consumer. * * Using it with the Monolog library only has no effect at all: processors should still be turned into a callable if * needed and manually pushed to the loggers and to the processable handlers. */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class AsMonologProcessor { /** @var string|null */ public $channel = null; /** @var string|null */ public $handler = null; /** @var string|null */ public $method = null; /** * @param string|null $channel The logging channel the processor should be pushed to. * @param string|null $handler The handler the processor should be pushed to. * @param string|null $method The method that processes the records (if the attribute is used at the class level). */ public function __construct( ?string $channel = null, ?string $handler = null, ?string $method = null ) { $this->channel = $channel; $this->handler = $handler; $this->method = $method; } } PKÍc«Ze;Z‘‘ Required.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Contracts\Service\Attribute; /** * A required dependency. * * This attribute indicates that a property holds a required dependency. The annotated property or method should be * considered during the instantiation process of the containing class. * * @author Alexander M. Turek */ #[\Attribute(\Attribute::TARGET_METHOD | \Attribute::TARGET_PROPERTY)] final class Required { } PKÍc«Z†ÐžyÃÃSubscribedService.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Contracts\Service\Attribute; use Symfony\Contracts\Service\ServiceSubscriberInterface; use Symfony\Contracts\Service\ServiceSubscriberTrait; /** * For use as the return value for {@see ServiceSubscriberInterface}. * * @example new SubscribedService('http_client', HttpClientInterface::class, false, new Target('githubApi')) * * Use with {@see ServiceSubscriberTrait} to mark a method's return type * as a subscribed service. * * @author Kevin Bond */ #[\Attribute(\Attribute::TARGET_METHOD)] final class SubscribedService { /** @var object[] */ public array $attributes; /** * @param string|null $key The key to use for the service * @param class-string|null $type The service class * @param bool $nullable Whether the service is optional * @param object|object[] $attributes One or more dependency injection attributes to use */ public function __construct( public ?string $key = null, public ?string $type = null, public bool $nullable = false, array|object $attributes = [], ) { $this->attributes = \is_array($attributes) ? $attributes : [$attributes]; } } PK7n«Zއë ë AttributeBag.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpFoundation\Session\Attribute; /** * This class relates to session attribute storage. * * @implements \IteratorAggregate */ class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable { private string $name = 'attributes'; private string $storageKey; protected $attributes = []; /** * @param string $storageKey The key used to store attributes in the session */ public function __construct(string $storageKey = '_sf2_attributes') { $this->storageKey = $storageKey; } public function getName(): string { return $this->name; } /** * @return void */ public function setName(string $name) { $this->name = $name; } /** * @return void */ public function initialize(array &$attributes) { $this->attributes = &$attributes; } public function getStorageKey(): string { return $this->storageKey; } public function has(string $name): bool { return \array_key_exists($name, $this->attributes); } public function get(string $name, mixed $default = null): mixed { return \array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default; } /** * @return void */ public function set(string $name, mixed $value) { $this->attributes[$name] = $value; } public function all(): array { return $this->attributes; } /** * @return void */ public function replace(array $attributes) { $this->attributes = []; foreach ($attributes as $key => $value) { $this->set($key, $value); } } public function remove(string $name): mixed { $retval = null; if (\array_key_exists($name, $this->attributes)) { $retval = $this->attributes[$name]; unset($this->attributes[$name]); } return $retval; } public function clear(): mixed { $return = $this->attributes; $this->attributes = []; return $return; } /** * Returns an iterator for attributes. * * @return \ArrayIterator */ public function getIterator(): \ArrayIterator { return new \ArrayIterator($this->attributes); } /** * Returns the number of attributes. */ public function count(): int { return \count($this->attributes); } } PK7n«Z€–O8ÁÁAttributeBagInterface.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpFoundation\Session\Attribute; use Symfony\Component\HttpFoundation\Session\SessionBagInterface; /** * Attributes store. * * @author Drak */ interface AttributeBagInterface extends SessionBagInterface { /** * Checks if an attribute is defined. */ public function has(string $name): bool; /** * Returns an attribute. */ public function get(string $name, mixed $default = null): mixed; /** * Sets an attribute. * * @return void */ public function set(string $name, mixed $value); /** * Returns attributes. * * @return array */ public function all(): array; /** * @return void */ public function replace(array $attributes); /** * Removes an attribute. * * @return mixed The removed value or null when it does not exist */ public function remove(string $name): mixed; } PKù}«ZÁ»UÔÔAsEventListener.phpnuW+A„¶ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\EventDispatcher\Attribute; /** * Service tag to autoconfigure event listeners. * * @author Alexander M. Turek */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)] class AsEventListener { public function __construct( public ?string $event = null, public ?string $method = null, public int $priority = 0, public ?string $dispatcher = null, ) { } } PKµªZÅσH Route.phpnuW+A„¶PKbªZÖšŸ]] GAsCommand.phpnuW+A„¶PKíhªZ¯Š(ÕùùáAsMonologProcessor.phpnuW+A„¶PKÍc«Ze;Z‘‘  Required.phpnuW+A„¶PKÍc«Z†ÐžyÃÃí SubscribedService.phpnuW+A„¶PK7n«Zއë ë õ&AttributeBag.phpnuW+A„¶PK7n«Z€–O8ÁÁ 2AttributeBagInterface.phpnuW+A„¶PKù}«ZÁ»UÔÔ*7AsEventListener.phpnuW+A„¶PK‰A: