code: public static function camel2words($name, $ucwords = true)
      {
          $label = mb_strtolower(trim(str_replace([
              '-',
              '_',
              '.',
          ], ' ', preg_replace('/(?<!\p{Lu})(\p{Lu})|(\p{Lu})(?=\p{Ll})/u', ' \0', $name))), self::encoding());
  
          return $ucwords ? StringHelper::mb_ucwords($label, self::encoding()) : $label;
      }
docs: Converts a CamelCase name into space-separated words.
  For example, 'PostTag' will be converted to 'Post Tag'.
  @param string $name the string to be converted
  @param bool $ucwords whether to capitalize the first letter in each word
  @return string the resulting words