Соглашения в Laravel
Важно поддерживать единый «code style».
# Model
- Единственное число
- Существительное
- PascalCase
- App\Models
# Table
- Множественное число
- snake_case
Имя таблицы = имя модели во множественном числе.
Если $table не указано явно в модели, то Laravel автоматически получит имя таблицы.
Даже если явно указывать имя таблицы, то всё равно рекомендуется придерживаться данного соглашения.
# Pivot Table
- Единственное число
- Имена моделей в алфавитном порядке
- snake_case
# Foreign Key
- Имя таблицы в единственном числе
- Постфикс «_id»
# Migration
- snake_case
- Название описывает действие
# Seeder
- Единственное число
- PascalCase
- Постфикс «Seeder»
- Database\Seeders
# Route URI
- Множественное число
- kebab-case
Обратись к REST Naming Guide за более подробной информацией.
# Route Name
- snake_case
- dot-нотация
# Controller
- Единственное число
- PascalCase
- Постфикс «Controller»
- App\Http\Controllers
# Resource Controller / CRUD
Стандартные CRUD методы: index, create, store, show, edit, update, destroy.
Обратись к документации за более подробной информацией.
Также, если необходимо, то ты можешь добавлять свои методы, но чтобы избежать конфликтов, их роуты должны быть определены до ресурсного контроллера.
# View
- kebab-case
- snake_case
- Без точек в имени
Нет чёткого стандарта использовать «kebab-case» или «snake_case». Главное используй один вариант во всем проекте.
Точки используются для разделения директорий, поэтому в имени их быть не должно, кроме расширения .blade.php
Данное соглашение касается как файлов, так и директорий.
# Config & Language
- snake_case
# Contract / Interface
- PascalCase
- Существительное или прилагательное
- Без префикса и постфикса
- App\Contracts
# Trait
- PascalCase
- Прилагательное
- Без префикса и постфикса
- App\Traits