Laravel — это мощный PHP-фреймворк, который помогает быстро создавать веб-приложения. Он удобен для новичков и даёт гибкость опытным разработчикам. В этой статье разберём, из чего состоит Laravel, как работают его основные части и как управлять миграциями — инструментом для работы с базой данных.
Как работает Laravel: Основы
Представьте Laravel как набор инструментов для строительства сайта. У вас есть "чертежи" (миграции), "рабочие" (контроллеры), "склад" (модели) и "внешний вид" (представления). Всё это связано через "дорожную карту" (маршруты). Вот как это устроено:
1. Маршруты (routes/web.php
)
Это "карта" сайта. Вы пишете, что происходит, когда пользователь заходит по адресу, например, на главную страницу (/
).
- Пример:
Route::get('/', [TaskController::class, 'index']);
- Как работает: Пользователь открывает сайт → Laravel смотрит в
web.php
→ отправляет запрос в контроллер.
2. Контроллеры (app/Http/Controllers
)
Это "рабочие", которые решают, что делать с запросом.
- Пример:
public function index() { $tasks = Task::all(); // Берём данные return view('tasks.index', compact('tasks')); // Показываем страницу }
- Как работает: Контроллер берёт данные из модели и отправляет их в представление.
3. Модели (app/Models
)
Это "склад" данных. Модель описывает, как данные хранятся в базе (например, таблица задач).
- Пример:
class Task extends Model { protected $fillable = ['title', 'deadline']; }
- Как работает: Модель связывает код с базой данных — ты можешь легко доставать и сохранять данные.
4. Представления (resources/views
)
Это "лицо" сайта — страницы, которые видит пользователь.
- Пример (
tasks/index.blade.php
):@foreach ($tasks as $task) <p>{{ $task->title }}</p> @endforeach
- Как работает: Контроллер передаёт данные в представление, а Blade превращает их в HTML.
5. Миграции (database/migrations
)
Это "чертежи" для базы данных. Вы описываете, какие таблицы и поля нужны.
- Пример:
Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->string('title'); $table->timestamps(); });
- Как работает: Laravel читает миграции и создаёт таблицы в базе.
6. Файл .env
Это настройки проекта, включая подключение к базе данных:
DB_CONNECTION=sqlite DB_DATABASE=/path/to/database.sqlite
Как работает: Laravel использует эти настройки, чтобы знать, где хранить данные.
Работа с миграциями: Команды и логика
Миграции в Laravel — это способ управлять структурой базы данных. Они похожи на версионный контроль: каждая миграция — это шаг, который добавляет или меняет что-то в базе. Вот как ими управлять.
Создание миграций
- Команда:
php artisan make:migration create_tasks_table
- Что происходит: Создаётся файл в
database/migrations
. Ты пишешь:public function up() { Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->string('title'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('tasks'); }
Применение миграций
- Команда:
php artisan migrate
- Что происходит: Laravel применяет все новые миграции — в базе появляется таблица.
Откат миграций
- Команда:
php artisan migrate:rollback
- Что происходит: Откатывает последнюю миграцию (удаляет таблицу).
Полный сброс
- Команда:
php artisan migrate:reset
- Что происходит: Откатывает все миграции — база становится пустой.
Пересоздание базы
- Команда:
php artisan migrate:refresh
- Что происходит: Сбрасывает и заново применяет все миграции.
Проверка статуса
- Команда:
php artisan migrate:status
- Что происходит: Показывает, какие миграции применены.
Добавление нового поля
- Команда:
php artisan make:migration add_deadline_to_tasks_table
- Пишешь:
public function up() { Schema::table('tasks', function (Blueprint $table) { $table->date('deadline')->nullable(); }); } public function down() { Schema::table('tasks', function (Blueprint $table) { $table->dropColumn('deadline'); }); }
Как всё связано: Пример
- Создаёшь модель и миграцию:
php artisan make:model Task -m
- Пишешь миграцию и запускаешь:
php artisan migrate
- В контроллере добавляешь задачу:
$task = new Task(); $task->title = 'Новая задача'; $task->save();
- В представлении показываешь:
<p>{{ $task->title }}</p>
Полезные команды для старта
php artisan serve
— запустить сайт.php artisan make:controller Имя
— создать контроллер.php artisan make:model Имя -m
— создать модель с миграцией.php artisan key:generate
— сгенерировать ключ приложения.
Итог
Laravel не генерирует миграции автоматически, как Django, но даёт удобные команды для их создания и управления. Ты сам пишешь "чертежи" базы, а Laravel помогает их применять. Это требует чуть больше усилий, но даёт полный контроль.
Теперь вы знаете основы работы с Laravel и можете начать свой первый проект. Попробуйте создать простое приложение, например, список задач, и поэкспериментируйте с миграциями — это лучший способ научиться!
Написать комментарий