PHP 装饰器编写器脚本

标签 php oop decorator

最近我开始更频繁地在 PHP 中使用装饰器来在运行时修改对象的行为。我的问题主要是懒惰,我们有许多带有大量方法的遗留类,而且必须为每个装饰器类重写/覆盖所有这些方法的想法让我很难过。有谁知道可以为我编写这些装饰器的命令行实用程序吗?

或者也许有更好的方法来解决这个问题?

最佳答案

根据这个问题,我了解到您懒得添加其他方法,例如那些不修 retrofit 饰实例的。为此,您可以使用魔术方法 __call

public function __call($method, $args) {
    return call_user_func_array(
        array($this->decoratedInstance, $method),
        $args
    );
}

您还可以根据需要添加__callStatic__get__set。但请注意,魔术拦截器总是会带来一些性能损失。如果你有很多嵌套的装饰器,这可能会很明显。如有疑问,请进行基准测试。

关于PHP 装饰器编写器脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857644/

相关文章:

javascript - 将 Iframe 数据拆分为不同的变量

php - 状态不发回到表单上?

php - 有效ip->location查询

java - 对象管理器?设计模式

c# - 字段和属性有什么区别?

python - Python 中的属性装饰器和设置函数

python - 为什么我的 Django View 装饰器没有收到传递给它的请求?

TypeScript 属性装饰器 : access to other properties

php - 如何从另一个数据库获取超过 100k 条记录并将其存储到数据库

java - 如何从构造函数中获取值到方法中?