gpt4 book ai didi

php - 拦截对 PHP 方法的调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:08 24 4
gpt4 key购买 nike

我有一个带有静态方法的类,我想在调用方法之前拦截方法调用。

所以如果我打电话

$model = DataMapper::getById(12345);

然后我希望在调用此方法之前调用 DataMapper 中的某个方法,然后可选地此拦截方法可以随后调用 self::getById(12345)。有办法做到这一点吗?

我正在我的服务器上实现 Memcache,所以这就是我想要拦截方法调用的原因。如果模型已经被缓存,我不希望静态方法查询数据库,我也不希望必须冗余地修改数百种不同的映射器方法来支持内存缓存。

我正在运行 PHP 5.2.6。

最佳答案

这会完成工作: Triggering __call() in PHP even when method exists

只需将您的静态方法声明为 protected,这样它们就无法在类外访问,并获得 __callStatic() 魔术方法来调用它们。

编辑:哎呀,你需要 5.3 才能完成...

关于php - 拦截对 PHP 方法的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com