Преобразуйте CamelCase в under_score_case в php __ автозагрузка ()

GUID является мощным типом данных для идентификации строки, так как это, как почти гарантируют, будет уникально, это позволяет большую гибкость, например, можно генерировать Гуид на уровне приложений, который может значительно упростить сохранение отношений.

, Как был сказан, большая оборотная сторона является расщеплениями страницы, которые произойдут, если Ваш PK будет кластерным индексом; однако, можно решить это двумя путями. Вы могли использовать NewSequentialId (), или можно установить PK, который будет не кластеризироваться. Я рекомендовал бы создать базу данных на основе требований к данным, и если Вам нужен GUID, используют его и затем оптимизируют вокруг него. И проверьте его производительность в своей среде.

28
задан Pmpr 19 November 2016 в 16:58
поделиться

2 ответа

Вы можете преобразовать имя класса следующим образом ...

function __autoload($class_name){
    $name = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $class_name));
    require_once("some_dir/".$name.".php");
}
68
ответ дан 28 November 2019 в 02:44
поделиться

Это не проверено, но я использовал нечто подобное раньше для преобразования имени класса. Могу добавить, что моя функция также выполняется за O (n) и не полагается на медленную обратную ссылку.

// lowercase first letter
$class_name[0] = strtolower($class_name[0]);

$len = strlen($class_name);
for ($i = 0; $i < $len; ++$i) {
    // see if we have an uppercase character and replace
    if (ord($class_name[$i]) > 64 && ord($class_name[$i]) < 91) {
        $class_name[$i] = '_' . strtolower($class_name[$i]);
        // increase length of class and position
        ++$len;
        ++$i;
    }
}

return $class_name;
2
ответ дан 28 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: