在性状中执行构造函数



我不是要在我的性状中执行构造函数(或在使用性状时的另一种方法)。有可能吗?

trait test{
    public function __construct()
    {
        echo 'test';
    }
}
class myClass{
    use test;
    public function __construct(){
        echo 'myClass';
    }
}
new myClass();

尝试这样的尝试(test):

trait test{
    public function __construct()
    {
        echo 'test';
    }
}
class myClass{
    use test {
        test::__construct as private __tConstruct;
    }
    public function __construct(){
        $this->__tConstruct();
    }
}
new myClass();

我仍然找不到记录的最佳实践,因此我在特征上使用__ -constructMyTraitName方法从Laravel遵循特征启动模式,并从模型构造函数中调用它。这似乎比"使用"更干净。别名。

trait MyTrait {
    public function __constructMyTrait($attributes)
    {
        // Trait constructor logic here
    }
}

然后在我的模型中:

    use MyTrait;
    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);
        $this->__constructMyTrait($attributes);
    }

最新更新