這個遠端方法只會回傳目前類別中的 Trait 名稱。
如果你的類別繼承了另一個使用你的 Trait 的類別,你將無法取得這些名稱。 但是,你可以這樣做:
<?php
$traitsNames = [];
$recursiveClasses = function ($class) use(&$recursiveClasses, &$traitsNames) {
if ($class->getParentClass() != false) {
$recursiveClasses($class->getParentClass());
}
else {
$traitsNames = array_merge($traitsNames, $class->getTraitNames());
}
};
$recursiveClasses($controllerClass);