Skip to content

Commit 392f949

Browse files
committed
Simplify Telegram::classNameToCommandName()
1 parent 63ba67d commit 392f949

File tree

1 file changed

+1
-23
lines changed

1 file changed

+1
-23
lines changed

src/Telegram.php

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,29 +1298,7 @@ protected function classNameToCommandName(string $class): string
12981298
if (substr($class, -7) !== 'Command') {
12991299
return '';
13001300
}
1301-
$temp = substr($class, 0, -7);
1302-
$chunks = [];
1303-
$currentUpperCaseLetter = '';
1304-
while ($temp !== '') {
1305-
if (!preg_match('/\p{Lu}/u', $temp, $match, PREG_OFFSET_CAPTURE)) {
1306-
break;
1307-
}
1308-
// $match[0][0] contains first upper case character
1309-
// $match[0][1] contains the start position (in bytes) of the first upper case character
1310-
[$upperCaseLetter, $upperCaseLetterOffset] = $match[0];
1311-
if ($upperCaseLetterOffset > 0) {
1312-
$chunks[] = $currentUpperCaseLetter . substr($temp, 0, $upperCaseLetterOffset);
1313-
} elseif ($currentUpperCaseLetter !== '') {
1314-
$chunks[] = $currentUpperCaseLetter;
1315-
}
1316-
$temp = substr($temp, $upperCaseLetterOffset + strlen($upperCaseLetter));
1317-
$currentUpperCaseLetter = $upperCaseLetter;
1318-
}
1319-
$lastChunk = $currentUpperCaseLetter . $temp;
1320-
if ($lastChunk !== '') {
1321-
$chunks[] = $lastChunk;
1322-
}
1323-
return implode('_', array_map('mb_strtolower', $chunks));
1301+
return mb_strtolower(preg_replace('/(.)(?=[\p{Lu}])/u', '$1_', substr($class, 0, -7)));
13241302
}
13251303

13261304
/**

0 commit comments

Comments
 (0)