- Знакомство с Laravel
- Первый проект на Laravel
- Laravel и Docker
- Первоначальная конфигурация Laravel
- Следующие шаги в изучении Laravel
- P.S. Если что-то пошло не так...
Знакомство с Laravel
Laravel — это фреймворк для создания веб-приложений с понятным и удобным синтаксисом. Фреймворк обеспечивает структуру и отправную точку для создания приложения, позволяя сосредоточиться на создании чего-то потрясающего, в то время как специалисты-программисты занимаются деталями.
Laravel стремится обеспечить удобство для разработчиков, предоставляя при этом такие мощные возможности, как внедрение зависимостей, выразительный уровень абстракции баз данных, очереди и задания по расписанию, модульное и интеграционное тестирование и многое другое.
Независимо от того, являетесь ли вы новичком в области веб-фреймворков PHP или имеете многолетний опыт работы, Laravel — это фреймворк, который может расти вместе с вами. Он поможет вам сделать первые шаги в качестве веб-разработчика или подтолкнет вас к тому, чтобы вы перешли на новый уровень. Уже не терпится увидеть, что вы сможете создать.
Новичок в Laravel? Загляните в Laravel Bootcamp, где можно получить практическое представление о фреймворке, в то время как специалисты помогут вам создать ваше первое приложение на Laravel.
Почему выбирают Laravel?
При создании веб-приложений можно использовать множество инструментов и фреймворков. Однако для создания современных полнофункциональных веб-приложений лучше всего подходит Laravel.
Laravel — это прогрессивный фреймворк
Laravel называют "прогрессивным" фреймворком. Под этим подразумевается, что Laravel развивается вместе с вами. Если вы только делаете первые шаги в веб-разработке, то обширная библиотека документации, руководств и видеоуроков Laravel поможет вам освоиться, не перегружаясь.
Если вы являетесь опытным разработчиком, Laravel предоставит вам надежные инструменты для внедрения зависимостей, модульного тестирования, очередей, событий в реальном времени и многого другого. Laravel прекрасно настроен для создания профессиональных веб-приложений и готов к работе с большими корпоративными нагрузками.
Laravel — это масштабируемый фреймворк
Laravel обладает невероятной масштабируемостью. Благодаря дружественной природе PHP и встроенной в Laravel поддержке быстрых распределенных систем кэширования, таких как Redis, горизонтальное масштабирование с помощью Laravel не составляет труда. Более того, приложения Laravel легко масштабируются до сотен миллионов запросов в месяц.
Требуется экстремальное масштабирование? Такие платформы, как Laravel Vapor, позволяют запускать приложения Laravel в практически неограниченном масштабе на новейшей бессерверной технологии AWS.
Laravel — это фреймворк сообщества
Laravel объединяет лучшие наборы решений в экосистеме PHP и предлагает наиболее надежный и удобный для разработчиков фреймворк. Кроме того, тысячи талантливых разработчиков со всего мира внесли свой вклад в развитие этой платформы. Кто знает, может быть, и вы станете одним из разработчиков Laravel.
Первый проект на Laravel
Перед созданием первого проекта Laravel необходимо убедиться, что на локальной машине установлены PHP и Composer. Если вы разрабатываете на macOS, PHP и Composer можно установить за несколько минут с помощью Laravel Herd. Кроме того, рекомендуется установить Node и NPM.
После установки PHP и Composer можно создать новый проект Laravel с помощью команды Composer create-project
:
composer create-project laravel/laravel example-app
Или можно создать новые проекты Laravel, глобально установив инсталлятор Laravel через Composer. Или, если вы установили PHP и Composer через Laravel Herd, программа установки Laravel уже доступна для вас:
composer global require laravel/installer
laravel new example-app
После создания проекта запустите локальный сервер разработки Laravel с помощью команды serve
интерфейса Artisan CLI:
cd example-app
php artisan serve
После запуска сервера разработки на базе Artisan ваше приложение будет доступно в веб-браузере по адресу http://localhost:8000
. Далее можно приступать к следующим шагам в экосистеме Laravel. Разумеется, вам может потребоваться настройка базы данных.
Если вы хотите получить преимущество при разработке приложения на Laravel, воспользуйтесь одним из стартовых наборов. Стартовые наборы Laravel предоставляют эскизы аутентификации бэкенда и фронтенда для вашего нового приложения Laravel.
Laravel и Docker
Важно, чтобы начать работу с Laravel было как можно проще, независимо от используемой операционной системы. Поэтому существует множество вариантов разработки и запуска проекта Laravel на локальной машине. Хотя вы можете изучить эти варианты позже, Laravel предоставляет Sail — встроенное решение для запуска проекта Laravel с помощью Docker.
Docker — это инструмент для запуска приложений и сервисов в небольших, легких "контейнерах", которые не влияют на установленное на локальной машине программное обеспечение и конфигурацию. Это означает, что вам не нужно беспокоиться о конфигурировании или настройке сложных средств разработки, таких как веб-серверы и базы данных, на локальной машине. Для начала работы достаточно установить Docker Desktop.
Laravel Sail — это легкий интерфейс командной строки для взаимодействия с Docker-конфигурацией Laravel по умолчанию. Sail — это отличная отправная точка для создания приложения Laravel с использованием PHP, MySQL и Redis, не требующая предварительного опыта работы с Docker.
Если вы уже являетесь экспертом по Docker, не беда! Все возможности Sail можно настроить с помощью файла
docker-compose.yml
, входящего в состав Laravel.
Установка Laravel на macOS
Если разработка ведется на Mac и Docker Desktop уже установлен, то для создания нового проекта Laravel можно воспользоваться простой командой терминала. Например, чтобы создать новое приложение Laravel в каталоге с именем example-app
, можно выполнить в терминале следующую команду:
curl -s "https://laravel.build/example-app" | bash
Конечно, можно изменить example-app
в этом URL на любое другое. Главное, чтобы имя приложения содержало только буквенно-цифровые символы, тире и знаки подчеркивания. Каталог приложения Laravel будет создан в том каталоге, из которого выполняется команда.
Установка Sail может занять несколько минут, пока контейнеры приложения Sail будут собираться на локальной машине.
После создания проекта можно перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с Docker-конфигурацией Laravel по умолчанию:
cd example-app
./vendor/bin/sail up
После запуска Docker-контейнеров приложения вы можете получить доступ к нему в веб-браузере по адресу: http://localhost
.
Чтобы продолжить знакомство с Laravel Sail, ознакомьтесь с полной документацией по нему.
Установка Laravel в Windows
Перед созданием нового приложения Laravel на компьютере с операционной системой Windows обязательно установите Docker Desktop. Далее необходимо убедиться, что установлена и включена подсистема Windows Subsystem for Linux 2 (WSL2). WSL позволяет запускать бинарные исполняемые файлы Linux нативно на Windows 10. Информацию о том, как установить и включить WSL2, можно найти в документации Microsoft по среде разработки.
После установки и включения WSL2 необходимо убедиться, что Docker Desktop настроен на использование бэкенда WSL2.
После этого можно приступать к созданию первого проекта Laravel. Запустите Windows Terminal и начните новую терминальную сессию для вашей операционной системы WSL2 Linux. Далее можно использовать простую команду терминала для создания нового проекта Laravel. Например, для создания нового приложения Laravel в каталоге с именем example-app
можно выполнить следующую команду в терминале:
curl -s https://laravel.build/example-app | bash
Конечно, можно изменить example-app
в этом URL на любое другое. Только убедитесь, что имя приложения содержит только буквенно-цифровые символы, тире и знаки подчеркивания. Каталог приложения Laravel будет создан в том каталоге, из которого была выполнена команда.
Установка Sail может занять несколько минут, пока контейнеры приложения Sail будут собираться на вашей локальной машине.
После создания проекта можно перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с Docker-конфигурацией Laravel по умолчанию:
cd example-app
./vendor/bin/sail up
После запуска Docker-контейнеров приложения доступ к нему можно получить в веб-браузере по адресу: http://localhost
.
Чтобы продолжить знакомство с Laravel Sail, ознакомьтесь с полной документацией по нему.
Разработка в рамках WSL2
Разумеется, необходимо иметь возможность изменять файлы приложения Laravel, созданные в рамках установки WSL2. Для этого рекомендуется использовать редактор Visual Studio Code от Microsoft и его собственное расширение для удаленной разработки.
После установки этих инструментов можно открыть любой проект Laravel, выполнив команду code .
из корневого каталога приложения с помощью Windows Terminal.
Уставновка с Laravel в Linux
Если разработка ведется в Linux и Docker Compose уже установлен, то для создания нового проекта Laravel можно воспользоваться простой командой терминала.
Сначала, если используется Docker Desktop для Linux, необходимо выполнить следующую команду. Если не используется Docker Desktop для Linux, то этот шаг можно пропустить:
docker context use default
Затем, чтобы создать новое приложение Laravel в каталоге с именем example-app
, можно выполнить в терминале следующую команду:
curl -s https://laravel.build/example-app | bash
Конечно, можно изменить example-app в этом URL на любое другое. Только убедитесь, что имя приложения содержит только буквенно-цифровые символы, тире и знаки подчеркивания. Каталог приложения Laravel будет создан в том каталоге, из которого была выполнена команда.
Установка Sail может занять несколько минут, пока контейнеры приложения Sail будут собираться на вашем локальном компьютере.
После создания проекта можно перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с Docker-конфигурацией Laravel по умолчанию:
cd example-app
./vendor/bin/sail up
После запуска Docker-контейнеров приложения к нему можно получить доступ через веб-браузер по адресу: http://localhost
.
Чтобы продолжить знакомство с Laravel Sail, ознакомьтесь с полной документацией по нему.
Выбор сервисов Sail для Laravel
При создании нового приложения Laravel через Sail можно использовать параметр with
для выбора сервисов, которые должны быть настроены в файле docker-compose.yml
нового приложения. Доступны следующие сервисы: mysql
, pgsql
, mariadb
, redis
, memcached
, meilisearch
, minio
, selenium
и mailpit
:
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
Если не указывать, какие сервисы необходимо настроить, то по умолчанию будет установлен стек из mysql
, redis
, meilisearch
, mailpit
и selenium
.
Можно указать Sail на установку Devcontainer по умолчанию, добавив в URL параметр devcontainer
:
curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash
Первоначальная конфигурация Laravel
Все конфигурационные файлы фреймворка Laravel хранятся в каталоге config
. Каждая настройка документирована, поэтому не надо лениться просматривать файлы и знакомиться с доступными вариантами настроек.
Из коробки Laravel практически не нуждается в дополнительной настройке. Поэтому можно смело приступать к разработке! Тем не менее, можно просмотреть файл config/app.php
и документацию к нему. Он содержит несколько настроек, таких как timezone
и locale
, которые вы по желанию можно изменить в соответствии с особенностями вашего приложения.
Базовая конфигурация Laravel на основе окружения
Поскольку многие значения параметров конфигурации Laravel могут меняться в зависимости от того, работает ли ваше приложение на локальной машине или на рабочем веб-сервере, многие важные значения конфигурации определяются с помощью файла .env
, который находится в корне вашего приложения.
Файл .env не должен быть привязан к системе управления исходными текстами приложения, поскольку для каждого разработчика/сервера, использующего приложение, может потребоваться своя конфигурация среды. Кроме того, в случае получения злоумышленником доступа к репозиторию системы управления исходными текстами это будет представлять угрозу безопасности, так как будут раскрыты все конфиденциальные учетные данные.
Более подробную информацию о файле
.env
и конфигурации на основе окружения можно найти в полной документации по конфигурации.
Базы данных и миграции в Laravel
Теперь, когда вы создали свое приложение Laravel, вероятно, захотите хранить некоторые данные в базе данных. По умолчанию в конфигурационном файле .env
вашего приложения указывается, что Laravel будет взаимодействовать с базой данных MySQL и обращаться к ней по адресу 127.0.0.1
. Если разработка ведется на macOS и требуется локальная установка MySQL, Postgres или Redis, то удобно использовать DBngin.
Если нет желания устанавливать MySQL или Postgres на локальную машину, всегда можно воспользоваться базой данных SQLite. SQLite — это небольшой, быстрый, автономный движок баз данных. Для начала работы создайте базу данных SQLite, создав пустой файл SQLite. Как правило, этот файл находится в каталоге баз данных вашего приложения Laravel:
touch database/database.sqlite
Затем обновите конфигурационный файл .env
, чтобы использовать драйвер базы данных Laravel sqlite
. Остальные параметры конфигурации базы данных можно удалить:
DB_CONNECTION=sqlite
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
После настройки базы данных SQLite можно запустить миграцию базы данных приложения, в результате которой будут созданы таблицы базы данных приложения:
php artisan migrate
Конфигурация директорий Laravel
Laravel всегда должен обслуживаться из корня "веб-каталога", настроенного для вашего веб-сервера. Не следует пытаться обслуживать приложение Laravel из подкаталога " веб-каталога". Это может привести к раскрытию конфиденциальных файлов, содержащихся в приложении.
Следующие шаги в изучении Laravel
Теперь, когда вы создали свой проект Laravel, вам, возможно, интересно, что изучать дальше. Прежде всего, мы настоятельно рекомендуем ознакомиться с принципами работы Laravel, прочитав следующую документацию:
- Жизненный цикл запроса (Request Lifecycle)
- Конфигурация (Configuration)
- Структура каталогов (Directory Structure)
- Фронтенд (Frontend)
- Сервис-контейнер (Service Container)
- Фасады (Facades)
От того, как именно вы хотите использовать Laravel, будут зависеть и дальнейшие шаги на вашем пути. Существует множество способов применения Laravel, и ниже будут рассмотрены два основных варианта использования фреймворка.
Новичок в Laravel? Посетите Laravel Bootcamp, чтобы получить практическое знакомство с фреймворком, а мы проведем вас через создание вашего первого приложения на Laravel.
Laravel — это полнофункциональный фреймворк
Laravel может выступать в качестве фреймворка полного стека разработки. Под "полностековым" фреймворком следует подразумевать, что вы собираетесь использовать Laravel для маршрутизации запросов к вашему приложению и создания фронтенда с помощью шаблонов Blade или гибридной технологии одностраничных приложений, например Inertia. Это наиболее распространенный способ использования фреймворка Laravel и, насколько можно судить, наиболее продуктивный.
Если вы планируете использовать Laravel именно таким образом, то ознакомьтесь с документацией по разработке фронтенда, маршрутизации, представлениям и ОРМ Eloquent. Кроме того, вероятно, будет интересно узнать о таких пакетах сообщества, как Livewire и Inertia. Эти пакеты позволяют использовать Laravel как полнофункциональный фреймворк и при этом пользоваться многими преимуществами пользовательского интерфейса, которые предоставляют одностраничные JavaScript-приложения.
Если вы используете Laravel как полнофункциональный фреймворк, настоятельно рекомендуется научиться компилировать CSS и JavaScript вашего приложения с помощью Vite.
Если вы хотите начать работу над своим приложением, воспользуйтесь одним из предлагаемых официальных стартовых наборов.
Laravel API для бэкенда
Laravel также может выступать в качестве API-бэкенда для одностраничного приложения на JavaScript или мобильного приложения. Например, можно использовать Laravel в качестве API-бэкенда для приложения Next.js. В этом случае Laravel может использоваться для обеспечения аутентификации и хранения/получения данных в приложении, а также для использования мощных сервисов Laravel, таких как очереди, электронная почта, уведомления и т.д..
Если вы планируете использовать Laravel именно таким образом, то, возможно, вам будет полезно ознакомиться с документацией по маршрутизации, Laravel Sanctum и Eloquent ORM.
Требуется создать основу для бэкенда Laravel и фронтенда Next.js? Laravel Breeze предлагает стек API, а также реализацию фронтенда Next.js, что позволит начать работу за считанные минуты.
P.S. Если что-то пошло не так...
- Последовательность установки:
- Включаем WSL2. Перезагрузка.
- Врубаем Ubuntu из MS Store (Debian встаёт криво из-за сертификатов от Ubuntu).
- Ставим Docker (и в его настройках нужно дёрнуть переключатель на подключение Ubuntu).
- Накатываем из консоли Ubuntu собственно Laravel.
- Настраиваем shell на
cd project_name
+ короткий вызовsail
. - Настраиваем phpStorm (ну или другую IDE).
- Для работы достаточно просто включить Docker. (Всё остальное должно подтянуться после
sail up
) - Docker Tips: Очистите свою машину от хлама (как снести всё, что установлено в Docker) -> тут
- Полное удаление «Подсистемы Windows для Linux» из Windows 11 (как снести установленную Linux) -> тут
Перевод с английского официальной документации Laravel:
https://laravel.com/docs/10.x/installation
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)