我在PHP中创建动态代理对象时遇到问题。
例如:
class ApplicationParamsService {
/*
* @Cache(time=30)
*/
public function getValue(string $key): float {
return $this->dao->getByKey($key);
}
}
我创建了自己的@Cache
-学说注释,为此,我创建了BeanProxy
并使用__call($methodName, $arguments)
来代理带注释的方法调用。
new BeanProxy($applicationParamService);
因此,如果有人使用bean.getVal('app.key')
,他将使用计时器30分钟调用缓存(缓存是APC或Redis)。
当我想将bean传递给其他bean构造函数时,问题出现了:__construct(ApplicationParamService $service)
<-但这会引起错误。
当然,我可以删除类型,但是那样我将丢失类型检查。