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


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

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

  Travaillez avec moi !