<?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();
Fatal error: Trait method one has not been applied, because there are collisions with other trait methods on Baz\Base in /in/3QPoM on line 51
Process exited with code 255.
Output for 5.3.0 - 5.3.29
Parse error: syntax error, unexpected T_STRING in /in/3QPoM on line 5
Process exited with code 255.