@@ -1298,29 +1298,7 @@ protected function classNameToCommandName(string $class): string
1298
1298
if (substr ($ class , -7 ) !== 'Command ' ) {
1299
1299
return '' ;
1300
1300
}
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 )));
1324
1302
}
1325
1303
1326
1304
/**
0 commit comments