• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

TP6获取控制器名,方法名_mjq663的博客_tp6 获取控制器

Data: 2020-04-28 23:21:50Form: JournalClick: 6

TP6获取控制器名,方法名
TP6获取控制器名,方法名_mjq663的博客-CSDN博客_tp6 获取控制器

第一种:助手函数调用

第二种:门面函数facade的静态调用

  1. \think\facade\Request::action();

  2. \think\facade\Request::controller();

第三种:app类的静态调用,注意此App为 use think\facade\App;

  1. (App::class)::make('request')->action();    

  2. 或者:  App::make('request')->action();

  3. 或者:  Facade::make('request')->action();

  4. 或者:  Facade::createFacade('request')->action();

此种方法最终调用了容器类Container,所以说容器类是所有方法调用的源头,容器是管理依赖注入的工具,这个是tp6的精华。

第四种:app类非静态调用

  1.  use think\App;

  2.  (new App())->make('request')->action();

第五种:容器类直接调用

Container::getInstance()->make('request')->action();

第六种:超级助手函数app()调用:

app('request')->action();

或使用下面的方式(以下方式即将被弃用)

  1. $request= \think\Request::instance();

  2. $module = $request->module();//模块名

  3. $controller = $request->controller();//控制器名

  4. $action = $request->action();//方法名

另外附PHP获取类中的所有方法。 在当前类中直接使用:

  1. $A = get_class_methods($this);

  2. halt($A); 

我们打印一下,发现返回的是一个数组,里面包含了当前类的,父类的,父父类的所有方法。 是方法的列表集。
在tp6中使用facade方式来静态调用里面的方法都是可以的,所以facade不仅仅是简单的一个封装,而是可以对以前写的方法全部使用静态调用,这样可以避免实例化,直接使用其中的方法。

Name:
<提交>