Is there any function in PHP (5.4) to get used traits as array or similar:
class myClass extends movingThings {
use bikes, tanks;
__construct() {
echo 'I\'m using the two traits:' . ????; // bikes, tanks
}
}
To easily get the used traits you can call class_uses()
$usedTraits = class_uses(MyClass);
// or
$usedTraits = class_uses($myObject);
When checking for available functionality, I would generally recommend to use interfaces
. To add default functionality to an interface you would use traits
. This way you can also benefit from type hinting.
Force an object having functionality by implementing an interface and then use a trait to implement default code for that interface.
class MyClass
implements SomeInterface
{
use SomeTrait;
}
Then you can check the interface by;
$myObject = new MyClass();
if ($myObject instanceof SomeInterface) {
//...
}
And still use type hinting;
function someFunction( SomeInterface $object )
{
//...
}