protected function getClassBaseNames($item): array
    {
        $basenames = array();
        $reflector = new \ReflectionClass($item);

        do
        {
            if (!$reflector->isAbstract())
            {
                $docComment = $reflector->getDocComment();
                if ($docComment && strpos($docComment, '@easy-extend-base') !== false)
                {
                    $basenames[] = $reflector->getName();

                    return $basenames;
                }

                $basenames[] = $reflector->getName();
            }

            $parent = $reflector->getParentClass();

            if (!$parent)
                break;

            $reflector = new \ReflectionClass($parent->getName());
        }
        while (true);

        return $basenames;
    }