- implode: documentation ( source)
- preg_split: documentation ( source)
- strtolower: documentation ( source)
<?php
const testNamespacedClasses = [
"Namespace\To\SettingOption",
"I\Was\Born\InTheUSAIwas",
"Something\Onething"
];
function testSnakeCasedModelNames() {
foreach (testNamespacedClasses as $class) {
echo "$class => ";
echo strtolower(
implode('_',
preg_split('~(?:[^\\\\]+\\\\)+|(?=[A-Z])~', $class, null, PREG_SPLIT_NO_EMPTY)
)
);
echo "\n---\n";
}
}
echo testSnakeCasedModelNames();