php - 如何限制某些类的 PHP 特性

标签 php traits

我有以下特点:

trait ARCacheableTrait
{
    public function instantiate() {
        // this will need to call some ActiveRecord methods using parent::
    }
}

它的目的是覆盖ActiveRecord 类的instantiate 方法。确保它只应用于此类的正确方法是什么?如果有人试图将它添加到不是或不扩展 ActiveRecord 或什至更好的类,我想抛出一个异常,通过抛出编译时错误来确保类型安全......

最佳答案

您能做的最好的事情就是使用抽象 方法定义来对展示类强加要求:

trait ARCacheableTrait {

    public function instantiate() {
        parent::foo();
    }

    abstract public function foo();

}

强制显示类实现一个方法foo,以确保特征可以调用它。但是,没有办法将特征限制为仅在某个类 层次结构 中显示。如果你想要那样,你可能想要实现一个特定的 ActiveRecord 子类,它实现这个特定的 instantiate 行为而不是使用特征。

关于php - 如何限制某些类的 PHP 特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24722052/

相关文章:

php - 使用 Twitter OAuth...需要一些帮助

PHP 单元测试具有特征的类

python - Chaco 文本中的 latex ?

collections - Rust 有集合特性吗?

generics - 将泛型 Result<T, E> 定义为返回类型

rust - 有没有办法将随机数生成器存储为特征对象?

php异常额外参数

php - 使用 PHP 和 PDO 的 foreach 循环内的变量

php - 用 PHP 替换\r\n

php - 由于 header() 而导致的 HTTP 302 错误