Зміна регістру
camelCase, snake_case, kebab-case і StudlyCase
Дані не залишають ваш браузер
Цей інструмент повністю працює на вашому пристрої: обчислення виконує JavaScript у вкладці. Ми не надсилаємо введений текст на сервер, не зберігаємо і не логуємо його. Можете сміливо працювати з робочими даними - і навіть відключити інтернет після завантаження сторінки.
Навіщо це потрібно
У кожному проєкті співіснує кілька стилів іменування: класи в StudlyCase, методи в camelCase, стовпці бази в snake_case, URL і CSS-класи в kebab-case, константи в CONSTANT_CASE. Перекладати назву з одного в інший доводиться постійно.
Стилі та їхнє місце в PHP і Laravel
| Стиль | Де використовується |
|---|---|
StudlyCase |
класи, енуми, назви міграцій |
camelCase |
методи, змінні, ключі в JSON API |
snake_case |
стовпці бази, ключі конфігів, ключі перекладів |
kebab-case |
URL, slug, CSS-класи, Blade-компоненти |
CONSTANT_CASE |
константи, змінні оточення |
Ця відповідність у Laravel не випадкова - на ній тримаються угоди фреймворку.
Як Laravel сам покладається на регістр
// Модель User -> таблиця users, зовнішній ключ user_id
class User extends Model {}
// Blade-компонент <x-user-card /> -> клас UserCard
// Маршрут users.show -> метод show у UserController
// Аксесори: метод у camelCase -> атрибут у snake_case
protected function fullName(): Attribute
{
return Attribute::get(fn (): string => "{$this->first} {$this->last}");
}
$user->full_name; // саме так, не fullName
Саме тому неправильний регістр у назві методу тихо ламає магію: Laravel просто не знайде те, що шукає.
Хелпери Str
Str::camel('user_profile_settings'); // userProfileSettings
Str::studly('user_profile_settings'); // UserProfileSettings
Str::snake('userProfileSettings'); // user_profile_settings
Str::kebab('UserProfileSettings'); // user-profile-settings
Str::headline('user_profile'); // User Profile
// Slug розуміє кирилицю і транслітерує її
Str::slug('Вакансії Laravel у Києві'); // vakansiyi-laravel-u-kiyevi
Str::slug() - окремий випадок: він не просто змінює регістр, а транслітерує, прибирає розділові знаки і робить рядок придатним для URL. Для української це саме те, що потрібно.
Один нюанс з абревіатурами
Перетворення APIResponse у snake_case дає a_p_i_response майже в будь-якій реалізації, включно з Laravel. Тому в назвах класів абревіатури зазвичай пишуть як ApiResponse - тоді все конвертується передбачувано.
- Де виконується
- у браузері
- Категорія
- Текст