Source of file ClassHelper.php

Size: 0,707 Bytes - Last Modified: 2023-11-16T22:56:02+01:00

/home/websites/teicee/packagist/site/phpdoc/conf/../vendor/teicee/core-bundle/src/Util/ClassHelper.php

123456789101112131415161718192021222324252627282930313233343536373839
<?php

namespace TIC\CoreBundle\Util;

class ClassHelper
{
    /**
     * This class should not be instantiated.
     */
    private function __construct()
    {
    }

    public static function hasTrait($object, $nameTrait): bool
    {

        $todo = [];
        $done = [];

        do {
            $todo += class_uses($object);

            while (!empty($todo)) {
                $trait = array_pop($todo);
                if (in_array($trait, $done)) continue;

                if ($trait == $nameTrait) return true;

                $todo += class_uses($trait);

                $done[] = $trait;
            }

        } while($object = get_parent_class($object));

        return false;
    }
}