Maison  >  Article  >  cadre php  >  laravel5 obtient la méthode du contrôleur

laravel5 obtient la méthode du contrôleur

WBOY
WBOYoriginal
2023-05-26 19:18:371092parcourir

Dans Laravel 5, obtenir des méthodes de contrôleur est une opération très basique et couramment utilisée. Dans certains scénarios, nous devrons peut-être obtenir le nom de la méthode exécutée par le contrôleur actuel. Alors, comment obtenir les méthodes du contrôleur dans Laravel 5 ? Ensuite, découvrons-le ensemble.

1. Objet $route

Dans Laravel 5, l'objet $route enregistre les informations de routage du contrôleur en cours d'exécution. Cet objet contient l'URI demandé, la méthode de requête, les paramètres de routage, etc. Si vous souhaitez obtenir le nom de la méthode du contrôleur actuel, vous pouvez l'obtenir via la méthode "getActionName" de l'objet $route.

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $route = Route::getCurrentRoute();
    $action = $route->getActionName();
    $fragments = explode('@', $action);
    $method = end($fragments);
    return $method;
}

Dans le code ci-dessus, nous obtenons d'abord l'objet de routage actuel via la méthode Route::getCurrentRoute(), puis utilisons la méthode "getActionName" de l'objet $route pour obtenir le chemin complet de la méthode du contrôleur actuel, par exemple « AppHttpControllersTestController@index ». Ensuite, nous utilisons la fonction explosive() pour intercepter la partie du nom de méthode et utilisons la fonction end() pour obtenir le dernier élément du tableau, qui est le nom de méthode du contrôleur. Enfin, renvoyez simplement le nom de la méthode.

2. Réflexion

En plus d'utiliser l'objet $route, nous pouvons également obtenir des méthodes de contrôleur via le mécanisme de réflexion PHP. Le mécanisme de réflexion PHP fournit une classe ReflectionClass, qui peut être utilisée pour obtenir des informations relatives à la classe, notamment des méthodes, des propriétés, des constantes, etc. Grâce à ReflectionClass, nous pouvons obtenir le nom de la méthode du contrôleur actuel.

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $controller = Route::current()->getController();
    $reflection = new ReflectionClass($controller);
    $method = $reflection->getMethod(Route::currentRouteAction());
    return $method->name;
}

Dans le code ci-dessus, nous obtenons d'abord l'objet instance du contrôleur actuel, puis utilisons la classe ReflectionClass pour obtenir les informations de réflexion de l'objet instance. Ensuite, obtenez la méthode actuellement exécutée via la méthode getMethod() de l'instance de réflexion. Enfin, utilisez l'attribut name de la méthode de réflexion pour obtenir le nom de la méthode et le renvoyer.

Summary

Ci-dessus sont deux façons d'obtenir des méthodes de contrôleur dans Laravel 5. Quelle que soit la méthode utilisée, elle nous fournira une méthode de fonctionnement très rapide et pratique, nous permettant de mieux contrôler l'exécution du contrôleur. Si vous avez des questions sur le développement de Laravel 5 ou si vous avez besoin d'en savoir plus sur Laravel 5, veuillez consulter la documentation officielle ou les didacticiels. Maîtriser les capacités de développement de Laravel 5 vous aidera à obtenir rapidement un avantage dans le domaine du développement web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Requêtes simultanées LaravelArticle suivant:Requêtes simultanées Laravel