TP5.1 门面(Facade)的使用

在搬砖时候经常遇到要new一个对象的时候,但是new很多对象时候就很烦恼,很烦。
感觉太累赘,不够优雅。

say('打翻你的洗澡盆');

这是常用的调用模式
但是这个人很能叭叭,代码里到处都有他的存在,每次都是把他new出来。
这就感觉很麻烦,我不想new他了,想拿来直接调用。

TP中提供了这么一个模式:门面(Facade)

官方是这么说的:


门面.png

意思就是:它可以将非静态的类作为静态类使用

我们看一下怎么实现

官网是这样写的


TP5.1 门面(Facade)的使用_第1张图片
image.png

实现一下

还是继续用上面的类:

我们的People类在extends下,里边有一个say方法。

我们给他设置一个代理

通过这个代理可以将所有方法转化为静态方法

可以让所有的调用通过代理再转发到People类中,只需要使用的时候use think\facade\类名即可

  1. 在/thinkphp/library/think/facade/ 中新建代理类(People.php)

我们发现平常使用的think\facade\Request类就在此目录下

TP5.1 门面(Facade)的使用_第2张图片
image.png

这样就可以大体理解Facade的作用跟他的使用方法了

我们给People设置一个代理类

注意,函数注解一定要写上(注解请另行搜索,我也不是很熟悉就不误人子弟了),不然通过通过代理静态调用类的方法时,IDE会不识别类的方法
static关键字写上后,对应的类即可静态调用

这个代理类写好后,我们在代码其它地方需要用到People类时候只需

就能完成方法调用了,一句代码就能带过,不用再到处new这么麻烦了。

你可能感兴趣的:(TP5.1 门面(Facade)的使用)