Final Class Yiisoft\Definitions\DynamicReferencesArray
| Inheritance | Yiisoft\Definitions\DynamicReferencesArray |
|---|
Allows creating an array of dynamic references from key-reference pairs.
See also Yiisoft\Definitions\DynamicReference.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| from() | Create dynamic references array from name-reference pairs. | Yiisoft\Definitions\DynamicReferencesArray |
Method Details
Create dynamic references array from name-reference pairs.
For example if we want to define a set of named dynamic references, usually it is done as:
// di-web.php
ContentNegotiator::class => [
'__construct()' => [
'contentFormatters' => [
'text/html' => DynamicReference::to(HtmlDataResponseFormatter::class),
'application/xml' => DynamicReference::to(XmlDataResponseFormatter::class),
'application/json' => DynamicReference::to(JsonDataResponseFormatter::class),
],
],
],
That is not very convenient, so we can define formatters in a separate config and without explicitly using
DynamicReference::to() for each formatter:
// params.php
return [
'yiisoft/data-response' => [
'contentFormatters' => [
'text/html' => HtmlDataResponseFormatter::class,
'application/xml' => XmlDataResponseFormatter::class,
'application/json' => JsonDataResponseFormatter::class,
],
],
];
Then we can use it like the following:
// di-web.php
ContentNegotiator::class => [
'__construct()' => [
'contentFormatters' =>
DynamicReferencesArray::from($params['yiisoft/data-response']['contentFormatters']),
],
],
| public static Yiisoft\Definitions\DynamicReference[] from ( array $definitions ) | ||
| $definitions | array |
Name-reference pairs. |
| throws | Yiisoft\Definitions\Exception\InvalidConfigException | |
|---|---|---|
public static function from(array $definitions): array
{
$references = [];
foreach ($definitions as $key => $definition) {
$references[$key] = DynamicReference::to($definition);
}
return $references;
}
Signup or Login in order to comment.