3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace Foo; trait aTrait { protected function one() { echo "a-one "; } public function two() { echo "a-two "; } public function three() { return defined('static::DELETED_AT') ? static::DELETED_AT : 'deleted_at'; } } namespace Bar; use Foo\aTrait as bTrait; trait aTrait { use bTrait { one as originalOne; two as originalGetQualifiedDeletedAtColumn; } protected function one() { echo "b-one"; $this->originalOne(); } public function two() { if (true) { return $this->three(); } $this->originalGetQualifiedDeletedAtColumn(); } } namespace Baz; use Bar\atrait; class Base { use aTrait; } class Test extends Base { public function __construct() { $this->one(); } } $test = new Test();

preferences:
51.77 ms | 402 KiB | 5 Q