Урок 01

Что такое Laravel

Что такое фреймворк

Фреймворк — это каркас приложения. Он определяет структуру проекта, порядок выполнения кода и готовые инструменты для типовых задач.

Отличие от библиотеки:

  • Библиотека — ты вызываешь её код.
  • Фреймворк — он вызывает твой код.

Пример: в Laravel ты пишешь контроллер, а Laravel сам находит его по URL, вызывает метод, отдаёт ответ.

Что такое Laravel

Laravel — PHP-фреймворк для веб-приложений. Создан Тейлором Отвеллом в 2011 году. Сейчас — самый популярный PHP-фреймворк в мире.

Идеология:

  • Простота — писать код приятно.
  • Выразительность — код читается как речь.
  • Батарейки в комплекте — аутентификация, очереди, кеш уже есть.
  • Соглашения — меньше конфигурации.

Что даёт Laravel

Основные компоненты:

КомпонентЗадача
РоутингСопоставление URL и обработчиков
Eloquent ORMРабота с БД через объекты
BladeШаблонизатор
МиграцииВерсионирование схемы БД
ArtisanCLI
SanctumАутентификация API
ВалидацияПроверка данных
ОчередиОтложенные задачи
КешУскорение
EventsСобытия и слушатели
PoliciesАвторизация

Плюс: mix/vite, breeze, jetstream, horizon, telescope, pulse — экосистема.

MVC-архитектура

MVC = Model — View — Controller.

  • Model — данные и связи (Eloquent).
  • View — отображение (Blade).
  • Controller — логика обработки запроса.

Поток запроса:

Браузер → index.php → Router → Middleware → Controller → Model → View → Ответ

Зачем использовать

Без фреймворка:

// Всё вручную
$pdo = new PDO('pgsql:host=localhost;dbname=app', 'user', 'pass');
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = ?');
$stmt->execute([$_POST['email']]);
$user = $stmt->fetch();

if ($user && password_verify($_POST['password'], $user['password'])) {
    session_start();
    $_SESSION['user_id'] = $user['id'];
    header('Location: /dashboard');
    exit;
}

С Laravel:

if (Auth::attempt($request->only('email', 'password'))) {
    return redirect()->intended('/dashboard');
}

Разница: код короче, безопаснее, поддерживаемее.

Версии Laravel

ВерсияДатаPHP
Laravel 1020238.1+
Laravel 1120248.2+
Laravel 1220258.2+
Laravel 1320268.3+

Актуальная: Laravel 13. LTS-подобная — 11 (до 2027).

Требования

  • PHP 8.2+ (для Laravel 13 — 8.3).
  • Composer — менеджер зависимостей PHP.
  • Node.js — для фронтенда (Vite).
  • База данных — PostgreSQL, MySQL, SQLite.
  • Redis (опционально) — кеш, очереди.

Экосистема

Первая сторона (официально от Laravel):

  • Sanctum — API-аутентификация.
  • Passport — OAuth2.
  • Breeze — стартовый набор.
  • Jetstream — продвинутый стартовый набор.
  • Horizon — мониторинг Redis-очередей.
  • Telescope — отладка.
  • Pulse — метрики.
  • Octane — ускорение через Swoole/RoadRunner.
  • Sail — Docker-окружение.

Вторая сторона:

  • Spatie — множество пакетов.
  • Larastan — PHPStan для Laravel.
  • Ide Helper — автодополнение.
  • Ray — отладка.
  • Flare — ошибки.

Кто использует Laravel

  • Большие: 9GAG, Razorpay, Pfizer, BBC, Zendesk.
  • Стартапы: тысячи.
  • Малый бизнес — подавляющее большинство.

Критика

Минусы Laravel:

  • Магия — много «под капотом».
  • Производительность — медленнее, чем Go/Rust/Node.
  • Размер — много файлов в проекте.

Но:

  • Скорость разработки — важнее для 90% проектов.
  • Производительность — решается кешем и оптимизацией.
  • Магия — если понимать, не проблема.

Когда использовать

Laravel — если:

  • Быстрый старт — MVP, стартап.
  • Средний проект — CRM, SaaS, маркетплейс.
  • Backend для SPA — API.
  • PHP-команда.
  • Полный стек — backend + admin.

Не Laravel — если:

  • Высокие нагрузки — Go, Rust.
  • ML/DS — Python.
  • Мобильный backend — иногда Node.
  • Микросервисы — по ситуации.

Что дальше

  1. Установка и структура проекта
  2. Роуты
  3. Контроллеры
  4. Blade
  5. Миграции
  6. Модели Eloquent
  7. Связи
  8. Валидация
  9. Query Builder
  10. Пагинация и фильтры
  11. Аутентификация Sanctum
  12. Деплой

Практика

Ответь на вопросы:

  1. Чем фреймворк отличается от библиотеки?
  2. Что такое MVC?
  3. Какие 3 главных компонента Laravel?
  4. Какой PHP нужен для Laravel 13?

Найди:

  1. На сайте laravel.com — текущую версию.
  2. В composer.json любого проекта Laravel — версию фреймворка.

Итог

  • Laravel — PHP-фреймворк.
  • Создан Тейлором Отвеллом в 2011.
  • MVC — Model, View, Controller.
  • Батарейки в комплекте — аутентификация, ORM, очереди, кеш.
  • Экосистема — Sanctum, Horizon, Telescope.
  • Требования: PHP 8.3+, Composer, БД.
  • Для 90% проектов — оптимальный выбор.

Дальше — установка и структура проекта.