Récupérer les paramètres des attributs d'une classe PHP avec la réflexion
Publié le 26/01/2023 • Actualisé le 26/01/2023
Dans ce bout de code, nous voyons comment Récupérer les paramètres des attributs d'une classe PHP avec la réflexion. Comme vous le voir, c'est assez facile. On peut récupérer les arguments dans un tableau associatif.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet241Trait
{
public function snippet241(): void
{
$refl = new \ReflectionClass($this::class);
$attributes = $refl->getAttributes();
$routeAttribute = $attributes[0]; // #[Route()] attribute in SnippetController
echo "Attribute's name: ".$routeAttribute->getName().PHP_EOL;
echo "Attribute's arguments: ";
print_r($routeAttribute->getArguments());
// That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Lire la doc Snippet aléatoire