* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Attribute; /** * An attribute to tell under which alias a service should be registered or to use the implemented interface if no parameter is given. * * @author Alan Poulain */ #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] final class AsAlias { /** * @var list */ public array $when = []; /** * @param string|null $id The id of the alias * @param bool $public Whether to declare the alias public * @param string|list $when The environments under which the class will be registered as a service (i.e. "dev", "test", "prod") */ public function __construct( public ?string $id = null, public bool $public = false, string|array $when = [], ) { $this->when = (array) $when; } }