<?php
namespace Foo;
trait aTrait {
protected function one() {
echo "a-one ";
}
public function two() {
echo "a-two ";
}
protected function three() {
return '';
}
}
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() {
$this->three();
$this->originalGetQualifiedDeletedAtColumn();
}
}
namespace Baz;
use Bar\atrait;
class Test {
use aTrait;
public function __construct() {
$this->one();
}
}
$test = new Test();
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
b-onea-one
Output for 5.4.11 - 5.4.12
Fatal error: Trait method one has not been applied, because there are collisions with other trait methods on Baz\Test in /in/uSFIu on line 52
Process exited with code 255.
Output for 5.3.0 - 5.3.29
Parse error: syntax error, unexpected T_STRING in /in/uSFIu on line 5
Process exited with code 255.