Оглавление
Laravel
Самый популярный PHP-фреймворк: маршруты, контроллеры, шаблоны Blade и работа с базой данных.
1.Начало работы
- Что такое LaravelЗачем нужен фреймворк Laravel и как создать первый проект.
- МаршрутыКак связать адрес страницы с кодом: маршруты, параметры и имена.
- КонтроллерыКак вынести обработку запросов из файла маршрутов в классы-контроллеры.
- Шаблоны BladeКак выводить HTML-страницы: шаблоны, переменные, условия, циклы и общий макет.
- Запросы и ответыОбъект Request в Laravel, чтение данных запроса, виды ответов: шаблон, JSON, перенаправление и файл.
- Компоненты BladeКомпоненты в шаблонах Laravel: свои теги, атрибуты, слоты и макет страницы на компонентах.
2.База данных
- МиграцииКак описывать таблицы базы данных кодом и менять их структуру.
- Модели EloquentРабота с таблицами через классы-модели: чтение, создание, изменение и удаление записей.
- Связи между моделямиОдин ко многим и многие ко многим: как получать связанные записи.
- Построитель запросовЗапросы к базе в Laravel: условия where, сортировка, выбор столбцов, агрегатные функции и объединение таблиц.
- Возможности EloquentОбласти запросов, преобразование атрибутов, вычисляемые свойства, мягкое удаление и события моделей в Laravel.
- КоллекцииКоллекции Laravel: преобразование, фильтрация, группировка и подсчёты над результатами запросов и обычными массивами.
- Постраничный выводПагинация в Laravel: метод paginate, ссылки на страницы в шаблоне, сохранение фильтров и обработка больших таблиц частями.
- Полиморфные связиПолиморфные связи в Eloquent: одна таблица комментариев для статей и видео, morphTo и morphMany, метки через morphToMany и карта типов.
- События моделей и наблюдателиСобытия Eloquent: creating, updated, deleting и другие, обработчики в методе booted, классы-наблюдатели и сохранение без событий.
- Транзакции и скорость запросовПроизводительность Eloquent: проблема N+1, withCount, запрет ленивой загрузки, обработка больших таблиц частями, транзакции и индексы.
3.Приложение
- Формы и валидацияКак принять данные формы, проверить их и показать ошибки пользователю.
- MiddlewareПосредники: код, который выполняется до или после обработки запроса.
- АутентификацияРегистрация, вход и выход пользователя, защита страниц от гостей.
- Классы запросовForm Request в Laravel: вынос правил валидации из контроллера, проверка прав, свои сообщения об ошибках и подготовка данных.
- Права доступаАвторизация в Laravel: Gate и Policy, проверка прав в контроллере, шаблоне и маршруте.
- Сессии и кешСессии и кеш в Laravel: хранение данных пользователя между запросами, разовые сообщения и кеширование медленных запросов.
4.Развитие приложения
- Фабрики и сидыКак наполнить базу тестовыми данными в Laravel: фабрики моделей, сиды и команда db:seed.
- APIКак сделать JSON API в Laravel: маршруты api.php, ресурсные контроллеры, API-ресурсы и коды ответов.
- Загрузка и хранение файловРабота с файлами в Laravel: приём загруженного файла, диски, публичная ссылка и удаление.
- ТестированиеАвтоматические тесты в Laravel: проверка страниц, базы данных, работа от имени пользователя и запуск тестов.
- Размещение на сервереКак выложить приложение Laravel на рабочий сервер: требования, настройки .env, команды оптимизации и обновление.
- Запросы к другим сервисамHTTP-клиент Laravel: фасад Http, запросы GET и POST, заголовки и токены, время ожидания, повторы, обработка ошибок и подмена в тестах.
- Помощники: строки, массивы, датыВспомогательные функции Laravel: класс Str и цепочки str(), Arr и data_get, даты Carbon, форматирование чисел Number и отладка.
- Токены API и ограничение запросовLaravel Sanctum: выдача токена при входе, защита маршрутов auth:sanctum, права токена, отзыв и ограничение частоты запросов.
- Тесты: фабрики, подмены и PestТестирование в Laravel глубже: фабрики моделей и состояния, подмена почты, очередей, файлов и HTTP, синтаксис Pest и параллельный запуск.
5.Фоновая работа
- Очереди и заданияОчереди в Laravel: вынос долгих операций в фоновые задания, запуск обработчика и повторные попытки.
- Почта и уведомленияОтправка писем в Laravel: классы Mailable, шаблон письма, отправка через очередь и уведомления по нескольким каналам.
- СобытияСобытия и слушатели в Laravel: как отделить основное действие от побочных и выполнять слушателей в очереди.
- Планировщик задачЗадачи по расписанию в Laravel: описание расписания в коде, частота запуска и одна запись cron на сервере.
6.Устройство фреймворка
- Контейнер и провайдерыСервис-контейнер Laravel: внедрение зависимостей, привязка интерфейсов к реализациям, провайдеры и фасады.
- Свои команды ArtisanСобственные консольные команды в Laravel: аргументы и опции, вывод в терминал, вопросы пользователю и запуск по расписанию.
- Настройки и перевод интерфейсаКонфигурация Laravel: файл .env и функция config, свои настройки, файлы перевода и переключение языка сайта.
- Журнал и обработка ошибокЛогирование и ошибки в Laravel: фасад Log, уровни сообщений, каналы, свои страницы ошибок и обработка исключений.
- Стили и скриптыФронтенд в Laravel: сборщик Vite, подключение CSS и JavaScript в шаблоне, Tailwind CSS и сборка для рабочего сервера.
- Livewire: интерактивность без JavaScriptLaravel Livewire: компонент из класса и шаблона, wire:click и wire:model, живой поиск, формы с проверкой и безопасность свойств.