Laravel. Полное руководство. 3 изд

Laravel. Полное руководство. 3 изд

Laravel. Полное руководство. 3 изд
Автор: Стауффер Мэтт
Дата выхода: 2024
Издательство: Спринт Бук
Количество страниц: 544
Размер файла: 2.9 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Предисловие....20

О чем эта книга....20

Для кого предназначена книга....21

Структура издания....21

О третьем издании....21

Условные обозначения....22

Благодарности....23

От издательства....24

Глава 1. Зачем использовать Laravel....25

Для чего нужен фреймворк....25

«Все своими руками»....26

Согласованность и гибкость....26

Краткий экскурс в историю веб- и PHP-фреймворков....26

Ruby on Rails....27

Бум PHP-фреймворков....27

Преимущества и недостатки CodeIgniter....27

Laravel 1, 2 и 3....28

Laravel 4....28

Laravel 5....28

Laravel 6....29

Версии Laravel в новом мире SemVer (6+)....29

Чем уникален Laravel....29

Философия Laravel....29

Как Laravel делает разработчиков счастливее....30

Сообщество Laravel....31

Как работает Laravel....32

Почему стоит выбрать Laravel....34

Глава 2. Настройка среды разработки для использования Laravel....35

Системные требования....35

Composer....36

Локальные среды разработки....36

Artisan Serve....36

Laravel Sail....36

Laravel Valet....37

Laravel Herd....37

Laravel Homestead....37

Создание нового проекта Laravel....38

Установка Laravel с помощью установщика Laravel....38

Установка Laravel с помощью функции create-project менеджера пакетов Composer....38

Установка Laravel с помощью Sail....39

Структура каталогов Laravel....39

Каталоги....40

Отдельные файлы....40

Конфигурация....41

Файл .env....42

Завершение настройки....44

Тестирование....45

Резюме....45

Глава 3. Маршрутизация и контроллеры....46

Краткое введение в MVC, команды HTTP и REST....46

Что такое MVC....46

HTTP-команды....47

Что такое REST....48

Определения маршрутов....49

Команды маршрутов....50

Обработка маршрутов....51

Параметры маршрутов....52

Имена маршрутов....53

Группы маршрутов....55

Промежуточное ПО....56

Префиксы путей....57

Поддоменная маршрутизация....58

Префиксы имен....58

Контроллеры групп маршрутов....59

Запасные маршруты....59

Подписанные маршруты....59

Подписание маршрута....60

Изменение маршрутов для разрешения подписанных ссылок....61

Представления (views)....61

Прямой возврат простых маршрутов с помощью метода Route::view()....62

Общий доступ представлений к переменным с использованием компоновщиков представлений....63

Контроллеры (controllers)....63

Получение ввода пользователя....65

Внедрение зависимостей в контроллеры....67

Контроллеры ресурсов....68

Контроллеры ресурсов API....69

Контроллеры одиночного действия....70

Привязка модели маршрута....70

Неявная привязка модели маршрута....70

Пользовательская привязка модели маршрута....72

Кэширование маршрутов....72

Подмена метода формы....73

HTTP-команды в Laravel....73

Подмена HTTP-метода в HTML-формах....73

Защита CSRF....74

Перенаправления....75

redirect()->to()....76

redirect()->route()....77

redirect()->back()....77

Другие методы перенаправления....77

redirect()->with()....78

Отмена запроса....79

Пользовательские ответы....80

response()->make()....80

response()->json() и ->jsonp()....80

response()->download(), ->streamDownload() и ->file()....80

Тестирование....81

Резюме....82

Глава 4. Движок шаблонов Blade....83

Отображение данных....84

Управляющие структуры....84

Условные конструкции....85

Циклы....85

Наследование шаблонов....87

Определение разделов страницы с помощью директив @section/@show и @yield....87

Включение частичных представлений....90

Использование компонентов....91

Использование стеков....96

Компоновщики представлений и внедрение сервисов....97

Привязка данных к представлениям с использованием компоновщиков представлений....97

Внедрение сервиса Blade....100

Пользовательские директивы Blade....101

Параметры пользовательских директив Blade....102

Пример: применение пользовательских директив Blade для многоклиентских приложений....103

Упрощенные пользовательские директивы для операторов if....104

Тестирование....104

Резюме....106

Глава 5. Базы данных и Eloquent....107

Конфигурация....107

Подключения к базе данных....108

Настройка URL....109

Другие параметры конфигурации базы данных....110

Миграции....110

Определение миграций....110

Запуск миграций....120

Инспектирование базы данных....121

Наполнение базы данными....122

Создание заполнителя....122

Фабрики моделей....123

Генератор запросов....130

Стандартное использование фасада DB....131

Чистый SQL....131

Выстраивание цепочки с генератором запросов....133

Транзакции....142

Ведение в Eloquent....143

Создание и определение моделей Eloquent....144

Получение данных с помощью Eloquent....146

Вставки и обновления с помощью Eloquent....148

Удаление с помощью Eloquent....151

Области видимости....154

Взаимодействия с полями с использованием аксессоров, мутаторов и приведением типов атрибутов....157

Коллекции Eloquent....162

Сериализация Eloquent....164

Отношения Eloquent....166

Синхронное обновление меток времени в родительских и дочерних записях....179

События Eloquent....182

Тестирование....183

Резюме....185

Глава 6. Компоненты для клиентской части....186

Стартовые наборы Laravel....186

Laravel Breeze....187

Laravel Jetstream....188

Конфигурация Laravel Vite....191

Упаковка файлов с помощью Vite....192

Сервер разработки Vite....193

Статические ресурсы и Vite....193

Vite и работа с фреймворками JavaScript....194

Использование переменных окружения в Vite....196

Разбивка на страницы....196

Разбивка на страницы результатов из базы данных....196

Разбивка на страницы вручную....198

Пакеты сообщений....199

Строковые вспомогательные функции, множественность и локализация....201

Строковые вспомогательные функции и множественность....201

Локализация....202

Тестирование....206

Тестирование пакетов сообщений и ошибок....206

Перевод и локализация....206

Отключение Vite при тестировании....207

Резюме....207

Глава 7. Сбор и обработка пользовательских данных....208

Внедрение объекта запроса....208

$request->all()....209

$request->except() и $request->only()....209

$request->has() и $request->missing()....210

$request->whenHas()....210

$request->filled()....211

$request->whenFilled()....211

$request->mergeIfMissing()....211

$request->input()....212

$request->method() и $request->isMethod()....212

$request->integer(), $request->float(), $request->string() и $request->enum()....212

$request->dump() и $request->dd()....213

Ввод массива....213

Ввод JSON (и $request->json())....214

Маршрутные данные....215

Из Request....215

Из параметров маршрута....216

Выгруженные файлы....216

Валидация....218

Метод validate() объекта Request....219

Подробнее о правилах проверки Laravel....220

Валидация вручную....221

Использование проверенных данных....221

Объекты пользовательских правил....222

Отображение сообщений об ошибках валидации....222

Запросы формы....223

Создание запроса формы....223

Использование запроса формы....224

Модель массового назначения Eloquent....225

Синтаксис {{ и {!!....226

Тестирование....227

Резюме....228

Глава 8. Интерфейсы Artisan и Tinker....229

Введение в интерфейс Artisan....229

Основные команды Artisan....230

Параметры....231

Сгруппированные команды....232

Написание пользовательских команд Artisan....234

Пример команды....235

Аргументы и параметры....236

Использование ввода....238

Приглашения....240

Вывод....241

Команды на основе замыканий....242

Вызов команд Artisan в нормальном коде....243

Tinker....244

Сервер дампа Laravel....244

Настройка шаблонов генератора....245

Тестирование....246

Резюме....246

Глава 9. Аутентификация и авторизация пользователей....247

Модель User и миграция....247

Использование глобальной вспомогательной функции auth() и фасада Auth....251

routes/auth.php, контроллеры аутентификации и действия....251

Шаблоны пользовательского интерфейса в Breeze и Jetstream....253

Токен «Запомнить меня»....253

Подтверждение пароля....254

Выполнение вручную аутентификации пользователей....254

Выполнение вручную выхода пользователя из системы....255

Аннулирование сессий на других устройствах....255

auth....256

Верификация адресов электронной почты....257

Blade-директивы для аутентификации....258

Охранники....259

Изменение охранника по умолчанию....259

Использование других охранников без изменения охранника по умолчанию....260

Добавление нового охранника....260

Охранники на основе замыкания запроса....260

Создание собственного провайдера пользователей....261

Собственные провайдеры пользователей для нереляционных баз данных....262

События аутентификации....262

Система авторизации и роли....263

Определение правил авторизации....263

Фасад Gate (и его внедрение)....264

Шлюзы ресурсов....265

Authorize....266

Авторизация внутри контроллера....266

Проверка с помощью экземпляра класса User....268

Проверки с помощью Blade-директив....269

Перехват проверок....269

Политики....270

Тестирование....272

Резюме....275

Глава 10. Запросы, ответы и промежуточное ПО....276

Жизненный цикл запроса в Laravel....276

Начальная загрузка приложения....277

Сервис-провайдеры....278

Объект Request....279

Получение объекта Request в Laravel....280

Получение основной информации о запросе....281

Объект Response....286

Использование и создание объектов Response в контроллерах....286

Специализированные типы ответов....287

Laravel и промежуточное ПО....293

Вводная информация о промежуточном ПО....293

Создание собственного промежуточного ПО....294

Привязка промежуточного ПО....296

Передача параметров промежуточному ПО....299

Промежуточное ПО по умолчанию....300

Режим обслуживания....300

Ограничение частоты....300

Доверенные прокси-серверы....301

CORS....302

Тестирование....303

Резюме....304

Глава 11. Контейнер....305

Вводная информация о внедрении зависимостей....305

Внедрение зависимостей и Laravel....307

Глобальная вспомогательная функция app()....307

Как осуществляется привязка к контейнеру....308

Привязка классов к контейнеру....309

Привязка к замыканию....309

Привязка одиночек, псевдонимов и экземпляров....310

Привязка конкретного экземпляра к интерфейсу....311

Контекстная привязка....312

Внедрение в конструктор в файлах фреймворка Laravel....313

Внедрение через метод....313

Фасады и контейнер....315

Как работают фасады....315

Фасады реального времени....317

Сервис-провайдеры....317

Тестирование....318

Резюме....319

Глава 12. Тестирование....320

Основы тестирования....321

Именование тестов....324

Среда тестирования....325

Трейты тестирования....326

RefreshDatabase....326

DatabaseMigrations....326

DatabaseTransactions....326

WithoutMiddleware....327

Простые модульные тесты....327

Как осуществляется тестирование приложений....328

HTTP-тесты....329

Тестирование простых страниц с помощью вызова $this->get() и других HTTP-вызовов....329

Тестирование API на базе JSON с помощью вызова $this->getJson() и других HTTP-вызовов на базе JSON....330

Утверждения в отношении объекта $response....331

Аутентификация ответов....334

Ряд других настроек HTTP-тестов....335

Обработка исключений в тестах приложений....335

Отладка ответов....336

Тесты базы данных....336

Проверка утверждений в отношении базы данных....337

Проверка утверждений в отношении моделей Eloquent....337

Использование фабрик моделей в тестах....338

Заполнение начальными данными в тестах....338

Тестирование других систем Laravel....338

Подделка событий....338

Подделка фасадов Bus и Queue....340

Подделка фасада Mail....341

Подделка фасада Notification....342

Подделка фасада Storage....343

Работа со значениями времени в тестах....344

Имитирование....345

Вводная информация об имитировании....345

Вводная информация о Mockery....345

«Подделка» других фасадов....348

Тестирование команд Artisan....349

Параллельное тестирование....350

Браузерные тесты....351

Выбор инструмента....351

Тестирование с использованием Dusk....351

Pest....363

Резюме....363

Глава 13. Создание API....364

Базовые сведения о REST-подобных API на базе JSON....364

Организация контроллеров и возвращаемые JSON-сообщения....366

Чтение и отправка заголовков....369

Отправка заголовков ответа в Laravel....370

Чтение заголовков запроса в Laravel....370

Разбивка на страницы в Eloquent....370

Сортировка и фильтрация....372

Сортировка результатов API....373

Фильтрация результатов API....374

Преобразование результатов....375

Ресурсы API....376

Создание класса ресурса....376

Коллекции ресурсов....377

Вложение отношений....379

Применение разбивки на страницы к ресурсам API....380

Условное применение атрибутов....381

Другие настройки для ресурсов API....381

Аутентификация API....382

Аутентификация API с помощью Sanctum....382

Аутентификация API с помощью Laravel Passport....386

Вводная информация о OAuth 2.0....386

Настройка ответов с кодом 404....398

Активация резервного маршрута....399

Тестирование....399

Тестирование пакета Passport....400

Резюме....400

Глава 14. Сохранение и извлечение данных....401

Локальные и облачные файловые менеджеры....401

Настройка доступа к файлам....401

Использование фасада Storage....403

Добавление дополнительных провайдеров из пакета Flysystem....405

Базовые способы выгрузки файлов на сервер и манипулирования файлами....406

Простые способы скачивания файлов....407

Сессии....407

Получение доступа к сессии....408

Методы, доступные в экземплярах сессий....409

Кратковременное хранилище сессии....411

Кэш....411

Получение доступа к кэшу....412

Методы, доступные в экземплярах кэшей....412

Cookie-файлы....414

Cookie-файлы в Laravel....414

Получение доступа к cookie-файлам....414

Журналирование....417

Когда и зачем следует выполнять журналирование....418

Запись сообщений в журналы....418

Каналы журналирования....419

Полнотекстовый поиск с использованием Laravel Scout....422

Установка пакета Scout....422

Пометка модели для индексирования....422

Поиск по вашему индексу....423

Очереди и Scout....423

Выполнение операций без индексирования....424

Условное индексирование моделей....424

Запуск индексирования вручную с помощью кода....424

Запуск индексирования вручную с помощью интерфейса командной строки....425

HTTP-клиент....425

Использование фасада HTTP....425

Обработка ошибок и тайм-аутов, а также проверка статусов....426

Тестирование....427

Хранилище файлов....427

Сессия....428

Кэш....430

Cookie-файлы....430

Журналирование....431

Scout....431

HTTP-клиент....432

Резюме....433

Глава 15. Почта и уведомления....434

Почта....434

Простейший способ использования «отправлений»....435

Шаблоны писем....437

Методы, доступные в envelope()....438

Прикрепление файлов и встраивание изображений....440

Markdown-отправления....441

Визуализация отправлений в браузере....443

Очереди....444

Локальная разработка....445

Уведомления....446

Определение метода via() для уведомляемых объектов....449

Отправка уведомлений....449

Помещение уведомлений в очередь....450

Предлагаемые по умолчанию типы уведомлений....450

Тестирование....454

Электронная почта....454

Уведомления....456

Резюме....457

Глава 16. Очереди, задания, события, рассылка и планировщик....458

Очереди....458

Зачем нужны очереди....459

Базовая конфигурация очередей....459

Задания в очереди....460

Запуск обработчика очередей....465

Обработка ошибок....466

Управление очередью....470

Очереди для поддержки других функций....471

Laravel Horizon....471

События....472

Запуск события....473

Прослушивание события....474

Рассылка событий посредством веб-сокетов и Laravel Echo....478

Конфигурация и настройка....478

Рассылка события....479

Получение сообщения....481

Продвинутые инструменты рассылки....483

Laravel Echo (сторона JavaScript-кода)....487

Планировщик....492

Доступные типы задач....493

Доступные временные интервалы....493

Определение часовых поясов для запланированных задач....496

Блокирование и наложение....496

Обработка выходных данных задачи....497

Ловушки задач....498

Запуск планировщика при локальной разработке....498

Тестирование....498

Резюме....500

Глава 17. Вспомогательные функции и коллекции....501

Вспомогательные функции....501

Массивы....501

Строки....504

Пути приложения....507

URL-адреса....508

Прочее....510

Коллекции....513

Базовые сведения....513

Некоторые операции с коллекциями....515

Резюме....522

Глава 18. Экосистема инструментов Laravel....523

Инструменты, рассмотренные в книге....523

Valet....523

Homestead....523

Herd....524

Установщик Laravel....524

Dusk....524

Passport....524

Sail....524

Sanctum....525

Fortify....525

Breeze....525

Jetstream....525

Horizon....525

Echo....526

Инструменты, не рассмотренные в этой книге....526

Forge....526

Vapor....526

Envoyer....527

Cashier....527

Socialite....528

Nova....528

Spark....528

Envoy....528

Telescope....529

Octane....529

Pennant....529

Folio....530

Volt....530

Pint....530

Другие ресурсы....530

Глоссарий....532

Об авторе....541

Иллюстрация на обложке....542

Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро создавать сайты и приложения, отличающиеся чистым удобочитаемым кодом. Третье издание, обновленное с учетом Laravel 10, — это практическое руководство по использованию одного из самых популярных на сегодняшний день веб-фреймворков.

Мэтт Стаффер, известный преподаватель и ведущий разработчик, представляет полный обзор фреймворка и конкретные примеры работы с ним. Опытным PHP-разработчикам книга поможет быстро разобраться с темой, чтобы реализовать проект на Laravel. В обновленном руководстве рассматриваются в том числе совершенно новые инструменты аутентификации и разработки пользовательских интерфейсов, а также ряд сторонних инструментов, появившихся после выхода в свет второго издания.


Похожее:

Список отзывов:

Нет отзывов к книге.