<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Routing; use Symfony\Component\Routing\Exception\InvalidArgumentException; class Alias { private string $id; private array $deprecation = []; public function __construct(string $id) { $this->id = $id; } public function withId(string $id): static { $new = clone $this; $new->id = $id; return $new; } /** * Returns the target name of this alias. * * @return string The target name */ public function getId(): string { return $this->id; } /** * Whether this alias is deprecated, that means it should not be referenced anymore. * * @param string $package The name of the composer package that is triggering the deprecation * @param string $version The version of the package that introduced the deprecation * @param string $message The deprecation message to use * * @return $this * * @throws InvalidArgumentException when the message template is invalid */ public function setDeprecated(string $package, string $version, string $message): static { if ('' !== $message) { if (preg_match('#[\r\n]|\*/#', $message)) { throw new InvalidArgumentException('Invalid characters found in deprecation template.'); } if (!str_contains($message, '%alias_id%')) { throw new InvalidArgumentException('The deprecation template must contain the "%alias_id%" placeholder.'); } } $this->deprecation = [ 'package' => $package, 'version' => $version, 'message' => $message ?: 'The "%alias_id%" route alias is deprecated. You should stop using it, as it will be removed in the future.', ]; return $this; } public function isDeprecated(): bool { return (bool) $this->deprecation; } /** * @param string $name Route name relying on this alias */ public function getDeprecation(string $name): array { return [ 'package' => $this->deprecation['package'], 'version' => $this->deprecation['version'], 'message' => str_replace('%alias_id%', $name, $this->deprecation['message']), ]; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Annotation | Folder | 0755 |
|
|
DependencyInjection | Folder | 0755 |
|
|
Exception | Folder | 0755 |
|
|
Generator | Folder | 0755 |
|
|
Loader | Folder | 0755 |
|
|
Matcher | Folder | 0755 |
|
|
Requirement | Folder | 0755 |
|
|
Alias.php | File | 2.5 KB | 0644 |
|
CHANGELOG.md | File | 12.74 KB | 0644 |
|
CompiledRoute.php | File | 4.13 KB | 0644 |
|
LICENSE | File | 1.04 KB | 0644 |
|
README.md | File | 1.49 KB | 0644 |
|
RequestContext.php | File | 6.58 KB | 0644 |
|
RequestContextAwareInterface.php | File | 525 B | 0644 |
|
Route.php | File | 11.98 KB | 0644 |
|
RouteCollection.php | File | 10.05 KB | 0644 |
|
RouteCompiler.php | File | 14.41 KB | 0644 |
|
RouteCompilerInterface.php | File | 733 B | 0644 |
|
Router.php | File | 11.51 KB | 0644 |
|
RouterInterface.php | File | 1015 B | 0644 |
|
composer.json | File | 1.49 KB | 0644 |
|