class ArgumentMetadata
Responsible for storing metadata of an argument.
@author Iltar van der Berg <kjarli@gmail.com>
Hierarchy
- class \Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata
Expanded class hierarchy of ArgumentMetadata
20 files declare their use of ArgumentMetadata
- BackedEnumValueResolver.php in vendor/
symfony/ http-kernel/ Controller/ ArgumentResolver/ BackedEnumValueResolver.php - DateTimeValueResolver.php in vendor/
symfony/ http-kernel/ Controller/ ArgumentResolver/ DateTimeValueResolver.php - DefaultValueResolver.php in vendor/
symfony/ http-kernel/ Controller/ ArgumentResolver/ DefaultValueResolver.php - MapQueryString.php in vendor/
symfony/ http-kernel/ Attribute/ MapQueryString.php - MapRequestPayload.php in vendor/
symfony/ http-kernel/ Attribute/ MapRequestPayload.php
File
-
vendor/
symfony/ http-kernel/ ControllerMetadata/ ArgumentMetadata.php, line 19
Namespace
Symfony\Component\HttpKernel\ControllerMetadataView source
class ArgumentMetadata {
public const IS_INSTANCEOF = 2;
/**
* @param object[] $attributes
*/
public function __construct(string $name, ?string $type, bool $isVariadic, bool $hasDefaultValue, mixed $defaultValue, bool $isNullable = false, array $attributes = [], string $controllerName = 'n/a') {
$this->isNullable = $isNullable || null === $type || $hasDefaultValue && null === $defaultValue;
}
/**
* Returns the name as given in PHP, $foo would yield "foo".
*/
public function getName() : string {
return $this->name;
}
/**
* Returns the type of the argument.
*
* The type is the PHP class in 5.5+ and additionally the basic type in PHP 7.0+.
*/
public function getType() : ?string {
return $this->type;
}
/**
* Returns whether the argument is defined as "...$variadic".
*/
public function isVariadic() : bool {
return $this->isVariadic;
}
/**
* Returns whether the argument has a default value.
*
* Implies whether an argument is optional.
*/
public function hasDefaultValue() : bool {
return $this->hasDefaultValue;
}
/**
* Returns whether the argument accepts null values.
*/
public function isNullable() : bool {
return $this->isNullable;
}
/**
* Returns the default value of the argument.
*
* @throws \LogicException if no default value is present; {@see self::hasDefaultValue()}
*/
public function getDefaultValue() : mixed {
if (!$this->hasDefaultValue) {
throw new \LogicException(\sprintf('Argument $%s does not have a default value. Use "%s::hasDefaultValue()" to avoid this exception.', $this->name, __CLASS__));
}
return $this->defaultValue;
}
/**
* @param class-string $name
* @param self::IS_INSTANCEOF|0 $flags
*
* @return array<object>
*/
public function getAttributes(?string $name = null, int $flags = 0) : array {
if (!$name) {
return $this->attributes;
}
return $this->getAttributesOfType($name, $flags);
}
/**
* @template T of object
*
* @param class-string<T> $name
* @param self::IS_INSTANCEOF|0 $flags
*
* @return array<T>
*/
public function getAttributesOfType(string $name, int $flags = 0) : array {
$attributes = [];
if ($flags & self::IS_INSTANCEOF) {
foreach ($this->attributes as $attribute) {
if ($attribute instanceof $name) {
$attributes[] = $attribute;
}
}
}
else {
foreach ($this->attributes as $attribute) {
if ($attribute::class === $name) {
$attributes[] = $attribute;
}
}
}
return $attributes;
}
public function getControllerName() : string {
return $this->controllerName;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ArgumentMetadata::getAttributes | public | function | |
ArgumentMetadata::getAttributesOfType | public | function | @template T of object |
ArgumentMetadata::getControllerName | public | function | |
ArgumentMetadata::getDefaultValue | public | function | Returns the default value of the argument. |
ArgumentMetadata::getName | public | function | Returns the name as given in PHP, $foo would yield "foo". |
ArgumentMetadata::getType | public | function | Returns the type of the argument. |
ArgumentMetadata::hasDefaultValue | public | function | Returns whether the argument has a default value. |
ArgumentMetadata::isNullable | public | function | Returns whether the argument accepts null values. |
ArgumentMetadata::isVariadic | public | function | Returns whether the argument is defined as "...$variadic". |
ArgumentMetadata::IS_INSTANCEOF | public | constant | |
ArgumentMetadata::__construct | public | function |