使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
其实从这个例子可以推出来,我们甚至可以模拟asm的相关功能,而且实现要比java简单很多。看来以前没有挖掘php的功能呀,这个语言被我低估了。
使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
其实从这个例子可以推出来,我们甚至可以模拟asm的相关功能,而且实现要比java简单很多。看来以前没有挖掘php的功能呀,这个语言被我低估了。