| Server IP : 68.178.247.200 / Your IP : 216.73.216.14 Web Server : Apache System : Linux p3plzcpnl489463.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64 User : x9dppmxs4rgd ( 8559391) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/vendor/php-di/php-di/src/Attribute/ |
Upload File : |
<?php
declare(strict_types=1);
namespace DI\Attribute;
use Attribute;
use DI\Definition\Exception\InvalidAttribute;
/**
* #[Inject] attribute.
*
* Marks a property or method as an injection point
*
* @api
*
* @author Matthieu Napoli <matthieu@mnapoli.fr>
*/
#[Attribute(Attribute::TARGET_PROPERTY | Attribute::TARGET_METHOD | Attribute::TARGET_PARAMETER)]
class Inject
{
/**
* Entry name.
*/
private ?string $name = null;
/**
* Parameters, indexed by the parameter number (index) or name.
*
* Used if the attribute is set on a method
*/
private array $parameters = [];
/**
* @throws InvalidAttribute
*/
public function __construct(string|array|null $name = null)
{
// #[Inject('foo')] or #[Inject(name: 'foo')]
if (is_string($name)) {
$this->name = $name;
}
// #[Inject([...])] on a method
if (is_array($name)) {
foreach ($name as $key => $value) {
if (! is_string($value)) {
throw new InvalidAttribute(sprintf(
"#[Inject(['param' => 'value'])] expects \"value\" to be a string, %s given.",
json_encode($value, \JSON_THROW_ON_ERROR)
));
}
$this->parameters[$key] = $value;
}
}
}
/**
* @return string|null Name of the entry to inject
*/
public function getName() : ?string
{
return $this->name;
}
/**
* @return array Parameters, indexed by the parameter number (index) or name
*/
public function getParameters() : array
{
return $this->parameters;
}
}