美文网首页
facade门脸静态代理技术

facade门脸静态代理技术

作者: 大笨蛋就是我呀 | 来源:发表于2019-01-22 14:55 被阅读0次

在默认的Index/controller下面创建一个Demo2.php文件

写个类

class Demo2{}

在app/common下创建个Test.php,也写个类

class Test{

public function hello($name){

return 'hello'.$name;

}

}

那么,在demo2中,class Demo2{

public function index($name='thinkphp'){

//想调用Test类中的方法

 $test=new \app\common\Test();

return $test->hello($name);

}

}

上面是最经典的调用其他类的方法,也叫传统调用

现在,如果不想这样调用,直接在方法中写Test::hello()方法,怎么办?

可以给Test绑定一个代理

在application 下创建个facade目录,下面创个类文件,Test类

namespace app\facade;

class Test extends \think\Facade{

protected static function getFacadeClass(){

return 'app\common\Test';

}

}

接下来在Demo2中,命名空间下导入静态类(use app\facade\Test),index方法中就可以写

return Test::hello('名称');了

系统中也给好多类,如app类等,到时应该可以这样调用了

如果不想

class Test extends \think\Facade{

protected static function getFacadeClass(){

return 'app\common\Test';

}

}这样写,想直接这样,class Test extends \think\Facade{

}

那就在Demo2中的index方法中写上

\think\Facade::bind('app\facade\Test','app\common\Test');  //静态代理的动态绑定

return Test::hello('名称');

相关文章

  • facade门脸静态代理技术

    在默认的Index/controller下面创建一个Demo2.php文件 写个类 class Demo2{} 在...

  • Laravel Facade

    Facade是容器中的类的静态代理,可以调用容器中任何对象的任何方法。 Route::get(‘/cache’, ...

  • JAVA动态代理的实现方式

    1. 静态代理VS动态代理 代理类可以增强被代理对象的方法。可分为静态代理和动态代理。 1.1 静态代理 静态代理...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • 静态代理、动态代理、Hook,它们之间到底是什么关系?

    / 代理模式 / 近期在研究Hook技术,需要用到动态代理,说到动态代理就会聊到它的兄弟静态代理,那它们到...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • 静态AOP

    静态代理 代理分为静态代理和动态代理。静态代理由程序员创建或工具生成代理类的源码,再编译代理类,所谓静态也就是在程...

  • 静态代理、动态代理

    代理分为静态代理和动态代理 按照代理创建的时期,可以分为静态代理和动态代理: (1) 静态代理:由程序员或者...

  • 静态代理

    静态代理, : //创建代理 总结静态代理: 解决: 可以使用动态代理。

  • 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP

    文章目录 Java的静态代理 静态代理的优缺点 ABAP的静态代理 Spring AOP的动态代理 JDK动态代理...

网友评论

      本文标题:facade门脸静态代理技术

      本文链接:https://www.haomeiwen.com/subject/ivapdqtx.html