Dans PHP, une interface est une structure qui définit la signature de la méthode qu'une classe doit implémenter. Il nous aide à normaliser et à découpler le code et à améliorer la maintenabilité et l'évolutivité du code. Lorsque nous utilisons des interfaces dans de grands projets, comment comprendre rapidement quelles interfaces se trouvent dans l'environnement de code actuel est un problème courant. Heureusement, PHP offre une fonction intégrée très pratique - get_declared_interfaces () , qui peut nous aider à afficher facilement toutes les interfaces déclarées.
Les interfaces sont un type abstrait dans le langage PHP qui définit un ensemble de méthodes mais ne contiennent pas d'implémentations spécifiques de méthodes. Une classe qui implémente une interface doit implémenter toutes les méthodes déclarées dans l'interface. Ce mécanisme permet à différentes classes de suivre la même spécification d'interface, garantissant qu'ils ont la même structure de méthode.
<?php
interface LoggerInterface {
public function log(string $message);
}
class FileLogger implements LoggerInterface {
public function log(string $message) {
echo "Logging message to a file: $message";
}
}
?>
get_declared_interfaces () est une fonction intégrée qui renvoie une liste de tous les noms d'interface actuellement déclarés. Il ne nécessite aucun paramètre, renvoie un tableau contenant les noms de toutes les interfaces.
Cette fonction est très adaptée au débogage, à la génération automatique de documents ou à l'analyse dynamique des structures de code.
Voici un exemple simple montrant comment utiliser get_declared_interfaces () pour obtenir les noms de toutes les interfaces dans l'environnement actuel.
<?php
// Déclarer une interface
interface SampleInterface {
public function sampleMethod();
}
// Obtenez toutes les interfaces déclarées
$interfaces = get_declared_interfaces();
echo "L'interface actuellement déclarée a:\n";
print_r($interfaces);
?>
Après avoir exécuté le code ci-dessus, une liste des interfaces intégrées d'échantillon et PHP sera sortie.
Si vous souhaitez visualiser davantage les méthodes d'une interface, vous pouvez utiliser la classe de réflexion en combinaison avec le mécanisme de réflexion de PHP.
<?php
interface ExampleInterface {
public function foo();
public function bar($param);
}
$interfaces = get_declared_interfaces();
foreach ($interfaces as $interface) {
if ($interface === 'ExampleInterface') {
$reflection = new ReflectionClass($interface);
echo "interface $interface La méthode est:\n";
foreach ($reflection->getMethods() as $method) {
echo "- " . $method->getName() . "\n";
}
}
}
?>
Le code ci-dessus sortira tous les noms de méthode définis par ExempleInterface .
En utilisant get_declared_interfaces () , nous pouvons obtenir dynamiquement la liste d'interface au moment de l'exécution, nous aidant à comprendre la définition des interfaces dans le programme, ce qui facilite le débogage et le maintien. Surtout dans les grands projets, lorsqu'il existe de nombreuses interfaces, cette fonction peut rapidement résumer les informations d'interface et gagner beaucoup de temps pour la recherche manuelle.