Laravel. Полное руководство - Мэтт Стаффер - E-Book

Laravel. Полное руководство E-Book

Мэтт Стаффер

0,0

Beschreibung

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

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 565

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Мэтт Стаффер
Laravel. Полное руководство. 3-е издание

Переводчик Л. Киселева

Мэтт Стаффер

Laravel. Полное руководство. 3-е издание. — Астана: Спринт Бук, 2024.

ISBN 978-601-08-3846-8

© ТОО "Спринт Бук", 2024

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Предисловие
О чем эта книга
Для кого предназначена книга
Структура издания
О третьем издании
Условные обозначения
Благодарности
От издательства
Глава 1. Зачем использовать Laravel
Для чего нужен фреймворк
Краткий экскурс в историю веб- и PHP-фреймворков
Чем уникален Laravel
Как работает Laravel
Почему стоит выбрать Laravel
Глава 2. Настройка среды разработки для использования Laravel
Системные требования
Composer
Локальные среды разработки
Создание нового проекта Laravel
Структура каталогов Laravel
Конфигурация
Завершение настройки
Тестирование
Резюме
Глава 3. Маршрутизация и контроллеры
Краткое введение в MVC, команды HTTP и REST
Определения маршрутов
Группы маршрутов
Подписанные маршруты
Представления (views)
Контроллеры (controllers)
Привязка модели маршрута
Кэширование маршрутов
Подмена метода формы
Защита CSRF
Перенаправления
Отмена запроса
Пользовательские ответы
Тестирование
Резюме
Глава 4. Движок шаблонов Blade
Отображение данных
Управляющие структуры
Наследование шаблонов
Компоновщики представлений и внедрение сервисов
Пользовательские директивы Blade
Тестирование
Резюме
Глава 5. Базы данных и Eloquent
Конфигурация
Миграции
Инспектирование базы данных
Наполнение базы данными
Генератор запросов
Ведение в Eloquent
События Eloquent
Тестирование
Резюме
Глава 6. Компоненты для клиентской части
Стартовые наборы Laravel
Конфигурация Laravel Vite
Разбивка на страницы
Пакеты сообщений
Строковые вспомогательные функции, множественность и локализация
Тестирование
Резюме
Глава 7. Сбор и обработка пользовательских данных
Внедрение объекта запроса
Маршрутные данные
Выгруженные файлы
Валидация
Запросы формы
Модель массового назначения Eloquent
Синтаксис {{ и {!!
Тестирование
Резюме
Глава 8. Интерфейсы Artisan и Tinker
Введение в интерфейс Artisan
Основные команды Artisan
Написание пользовательских команд Artisan
Вызов команд Artisan в нормальном коде
Tinker
Сервер дампа Laravel
Настройка шаблонов генератора
Тестирование
Резюме
Глава 9. Аутентификация и авторизация пользователей
Модель User и миграция
Использование глобальной вспомогательной функции auth() и фасада Auth
routes/auth.php, контроллеры аутентификации и действия
Токен «Запомнить меня»
Выполнение вручную аутентификации пользователей
Выполнение вручную выхода пользователя из системы
auth
Верификация адресов электронной почты
Blade-директивы для аутентификации
Охранники
События аутентификации
Система авторизации и роли
Тестирование
Резюме
Глава 10. Запросы, ответы и промежуточное ПО
Жизненный цикл запроса в Laravel
Объект Request
Объект Response
Laravel и промежуточное ПО
Промежуточное ПО по умолчанию
Тестирование
Резюме
Глава 11. Контейнер
Вводная информация о внедрении зависимостей
Внедрение зависимостей и Laravel
Глобальная вспомогательная функция app()
Как осуществляется привязка к контейнеру
Привязка классов к контейнеру
Внедрение в конструктор в файлах фреймворка Laravel
Внедрение через метод
Фасады и контейнер
Сервис-провайдеры
Тестирование
Резюме
Глава 12. Тестирование
Основы тестирования
Именование тестов
Среда тестирования
Трейты тестирования
Простые модульные тесты
Как осуществляется тестирование приложений
HTTP-тесты
Тесты базы данных
Тестирование других систем Laravel
Работа со значениями времени в тестах
Имитирование
Тестирование команд Artisan
Параллельное тестирование
Браузерные тесты
Pest
Резюме
Глава 13. Создание API
Базовые сведения о REST-подобных API на базе JSON
Организация контроллеров и возвращаемые JSON-сообщения
Чтение и отправка заголовков
Разбивка на страницы в Eloquent
Сортировка и фильтрация
Преобразование результатов
Ресурсы API
Аутентификация API
Аутентификация API с помощью Laravel Passport
Настройка ответов с кодом 404
Тестирование
Резюме
Глава 14. Сохранение и извлечение данных
Локальные и облачные файловые менеджеры
Базовые способы выгрузки файлов на сервер и манипулирования файлами
Простые способы скачивания файлов
Сессии
Кэш
Cookie-файлы
Журналирование
Полнотекстовый поиск с использованием Laravel Scout
HTTP-клиент
Тестирование
Резюме
Глава 15. Почта и уведомления
Почта
Уведомления
Тестирование
Резюме
Глава 16. Очереди, задания, события, рассылка и планировщик
Очереди
Laravel Horizon
События
Рассылка событий посредством веб-сокетов и Laravel Echo
Планировщик
Тестирование
Резюме
Глава 17. Вспомогательные функции и коллекции
Вспомогательные функции
Коллекции
Резюме
Глава 18. Экосистема инструментов Laravel
Инструменты, рассмотренные в книге
Инструменты, не рассмотренные в этой книге
Другие ресурсы
Глоссарий
Об авторе
Иллюстрация на обложке

Эта книга посвящена моей большой семье и сообществам — родителям, братьям и сестрам, детям, а также моим друзьям, коллективу компании Tighten, сообществу Laravel в Декстере, Энн-Арборе, Гейнсвилле, Чикаго, Декейтере и Атланте. Всем вам.

Предисловие

История моего знакомства с Laravel вполне заурядна: много лет я писал код на PHP и активно исследовал потенциал Rails и других современных веб-фреймворков. В Rails меня привлекало прекрасное сочетание исходных настроек и гибкости, мощные возможности системы управления пакетами стандартного кода Ruby Gems, а также наличие активного сообщества программистов.

Я так и не перешел на Rails, чему был безумно рад, когда узнал о Laravel. Он взял лучшее от Rails, не становясь при этом его клоном. Это был инновационный фреймворк с отличной документацией и доброжелательным сообществом.

После этого я начал делиться своим опытом изучения Laravel: вел блог, записывал подкасты и выступал на конференциях. С помощью Laravel я написал десятки приложений в рамках своей основной работы и дополнительных проектов и познакомился лично и в режиме онлайн с разработчиками, использующими этот фреймворк. Даже имея богатый арсенал инструментов разработки, я наслаждаюсь, когда набираю в командной строке laravelnewprojectName.

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

Это не первая книга о Laravel и не последняя. Я не стремился объяснить каждую строку кода или шаблон реализации, поскольку не хотел рассказывать о том, что устареет после обновления Laravel. Я хотел написать книгу, которая предоставляла бы разработчикам обзор и давала конкретные примеры требований для работы в кодовых базах Laravel с использованием любой функции или подсистемы этого фреймворка. Я стремился не просто дублировать документацию, а помочь вам понять основополагающие концепции Laravel.

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

Документация Laravel всесторонняя и качественная. Если вам кажется, что я недостаточно хорошо осветил определенную тему, то рекомендую ознакомиться с ее более подробным описанием в онлайн-документации по адресу https://laravel.com/docs.

Надеюсь, в книге вы найдете оптимальный баланс между теорией и практикой в виде примеров конкретного применения, а по прочтении сможете легко написать с помощью Laravel с нуля целое приложение.

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

Книга подойдет для читателя, знающего базовые методы объектно-ориентированного программирования, язык PHP (или по крайней мере общий синтаксис языков C), а также базовые концепции архитектурного паттерна «Модель — представление — контроллер» (Model — View — Controller, MVC) и обработки шаблонов. Если вы никогда не создавали сайт, материал книги может оказаться слишком сложным. Но если у вас есть опыт программирования, то не обязательно знать что-то о Laravel — я объясню все, что нужно, начиная с простейшего примера Hello, world!.

Laravel может работать в любой операционной системе, но приведенные здесь примеры команд оболочки bash проще запускать в Linux/macOS. Пользователям Windows будет сложнее выполнять эти команды и в целом применять современные средства разработки на PHP, однако, следуя инструкциям, вы сможете установить Homestead (виртуальную машину Linux) и запускать все необходимые команды.

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

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

Хотя каждый раздел книги — самостоятельный материал, главы организованы так, чтобы незнакомые с фреймворком пользователи могли эффективно усваивать материал, читая главы по порядку.

Большинство глав заканчивается двумя разделами: «Тестирование» и «Резюме». В них соответственно показывается, как писать тесты для представленных возможностей, и проводится общий обзор рассмотренного материала.

В книге описывается работа с Laravel 10.

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

Первое издание книги вышло в декабре 2016 года и освещало возможности версий Laravel с 5.1 по 5.3. Во втором издании, вышедшем в апреле 2019 года, дополнительно рассмотрены возможности версий 5.4–5.8, инструментов Laravel Dusk и Laravel Horizon, а также добавлена глава 18, посвященная ресурсам сообщества и дополнительным пакетам Laravel, которые не были охвачены в первых 17 главах. В этом новом издании рассматривается версия Laravel 10, а также новые пакеты Breeze, Jetstream, Fortify, Vite и многое другое.

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

В этой книге используются следующие типографские обозначения.

Рубленый шрифт

Используется для выделения URL-адресов и адресов электронной почты.

Курсивный шрифт

Применяется для выделения новых терминов и имеющих важное значение слов.

Моноширинный шрифт

Используется для записи примеров программ, а также для выделения в тексте таких элементов, как имена переменных и функций, базы данных, типы данных, переменные среды, операторы и ключевые слова, имена и расширения файлов.

Полужирный моноширинный шрифт

Предназначен для выделения команд или другого текста, который должен вводиться пользователем без каких-либо изменений.

Курсивный моноширинный шрифт

Применяется для обозначения в коде элементов, которые требуется заменить предоставленными пользователем значениями или значениями, зависящими от контекста.

{Курсивныймоноширинныйшрифтвфигурныхскобках}

Используется для выделения имен файлов или путей к файлам, которые требуется заменить предоставленными пользователем значениями или значениями, зависящими от контекста.

Так обозначается совет или предложение.

Это примечание общего характера.

Так обозначается предупреждение.

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

Работая над книгой, я получал поддержку от такого количества людей, что даже не знаю, с кого начать.

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

Вместе со мной над книгой работали научные редакторы: Уилбур Пауэри, Бриттани Джонс Дюма, Рика Махарадж и Ана Лисбоа. Без их помощи я не смог бы написать второе и третье издания.

В сообществе Laravel так много людей, которые заслуживают благодарности, что я просто не смогу перечислить их всех здесь. Поэтому всем, кто вложил столько любви, преданности, заботы, мастерства... спасибо. Спасибо, что помогли создавать и поддерживать это невероятное сообщество; спасибо всем, кто протянул мне руку помощи, кто помогал в воспитании детей, кто поддерживал меня после развода, в периоды пандемии и депрессии и вообще во всем. Вы замечательные!

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

Спасибо моим научным редакторам! Редакторы первого издания — Кит Дамиани, Майкл Дайринда, Адам Фэйрхольм и Майлс Хайсон; второго издания — Тейт Пеньяранда, Энди Свик, Мохамед Саид и Саманта Гейтц; третьего издания — Энтони Кларк, Бен Холмен, Джейк Батман и Тони Мессиас.

И конечно же, спасибо остальным членам моей семьи и друзьям, которые поддерживали меня прямо или косвенно, — родителям, братьям и сестрам, сообществам Чикаго, Гейнсвилла, Декейтера и Атланты, другим владельцам компаний и авторам книг, участникам конференций и просто невероятному количеству замечательных людей, которым я благодарен за участие и общение.

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

Ваши замечания, предложения, вопросы отправляйте по адресу

[email protected]

(издательство «SprintBook», компьютерная редакция).

Мы будем рады узнать ваше мнение!