- Установка Laravel
- Почему Laravel?
- Прогрессивный фреймворк
- Масштабируемый фреймворк
- Фреймворк для сообщества
- Ваш первый проект на Laravel
- Laravel и Docker
- Начало работы на macOS
- Начало работы на Windows
- Начало работы на Linux
- Выбор сервисов для Sail
- Начальная конфигурация
- Конфигурация на основе среды
- Базы данных и миграции
- Следующие шаги
- Laravel как Full стэк фреймворк
- Laravel как API бэкенд
Установка Laravel
Laravel это фреймворк для создания веб приложений с выразительным и элегантным синтаксисом. Фреймворк предоставляют отличную базовую структуру и стартовую точку для создания ваших приложений, позволяя сосредоточиться на создании чего-то классного без дополнительной возни с различными техническими деталями.
Laravel стремится предоставить разработчику прекрасный опыт разработки, предлагая мощные встроенные возможности, такие как внедрение зависимостей, абстрактный слой для взаимодействия с базой данных, очереди, запланированные таски, интеграционное и юнит тестирования и т.д.
Неважно, только начинаете вы знакомиться с PHP фреймворками, либо имеете годы опыта — Laravel будет расти с вами.
Новичок в Laravel? Проверьте контент на сайте bootcamp.laravel.com для быстрого практического ознакомления с возможностями фреймворка.
Почему Laravel?
Сегодня есть огромное кол-во библиотек и фреймворков для создания своих веб-приложений. Однако Laravel является одним из лучших выборов, которые можно сделать для построения быстрых и современных приложений. Вот несколько достоинств Laravel.
Прогрессивный фреймворк
В данном случае это означает, что каков бы ни был ваш опыт в веб-разработке, Laravel найдет что вам предложить. Экосистема фреймворка огромна и изучать его можно долго. На сайте laracasts.com можно найти видео туториалы самых разных уровней сложности.
Если вы старший разработчик с большим опытом работы, Laravel предоставляет такой функционал, как внедрение зависимостей, юнит и интеграционное тестирование, очереди, события в реальном времени и многое другое. Фреймворк хорошо настроен для создания профессиональных приложений и подходит для коммерческих проектов.
Масштабируемый фреймворк
Laravel поддерживает такие быстрые системы кэширования как Redis из коробки, позволяя легко осуществлять горизонтальное масштабирование. Веб-приложения на Laravel обладают возможностью масштабирования для обработки сотен миллионов запросов в месяц.
Нуждаетесь в экстремальном масштабировании? Такие инструменты, как Laravel Vapor, позволяют повысить возможности масштабируемости практически до неограниченных масштабов благодаря serverless-технологиям.
Фреймворк для сообщества
Тысячи талантливых разработчиков со всего мира внесли свой вклад в развитие Laravel. Данный фреймворк не является какой-то закрытой системой, но состоит из десятков лучших и зарекомендовавших себя PHP-пакетов, в совокупности давая невероятно удобные возможности по созданию приложений.
Ваш первый проект на Laravel
Перед созданием вашего первого проекта на Laravel, следует убедиться, что на вашей локальной машине установлен PHP и Composer (менеджер пакетов для PHP). Если вы разрабатываете на macOS, PHP и Composer могут быть установлены через Homebrew. В дополнение, рекомендуется установить Node и NPM, если в ваших приложениях предполагается наличие современных фронтенд решений.
После установки PHP и Composer вы можете создать Laravel проект с помощью консольных возможностей composer:
composer create-project laravel/laravel my-app
Создавать проекты чуть проще через установщик Laravel. Его можно установить глобально, после чего создавать новые проекты буквально с помощью трех слов.
composer global require laravel/installer laravel new my-app
После того, как проект был создан, вы уже можете начать локальную разработку с помощью команды artisan serve .
cd my-app php artisan serve
После того как вы запустите Artisan сервер для разработки, приложение станет доступно по адресу localhost:8000 . Теперь вы можете делать следующие шаги в изучении Laravel.
Если вы хотите стартовать ваше приложение с большим количеством возможностей, рассмотрите использование одного из стартовых шаблонов Laravel, таких как Breeze или JetStream. Стартовые шаблоны включают в себя готовые решения как аутентификации и различные другие возможности.
Laravel и Docker
Здорово, когда есть возможность стартовать с Laravel максимально легко, вне зависимости от вашей операционной системы. Есть много вариантов для разработки и запуска Laravel приложений на локальном компьютере. Например, Laravel предоставляет собственный пакет Sail для быстрого развертывания проекта с помощью Docker.
Docker это инструмент для запуска приложений в небольших легковесных контейнерах, которые не конфликтуют с программным обеспечением, установленным на вашем ПК. Это означает, что вам необязательно разбираться в настройке таких непростых инструментов, как веб-сервер и сервер баз данных. Для старта вам достаточно установить Docker Desktop.
Laravel Sail это легковесный CLI (интерфейс командной строки) для взаимодействия с конфигурацией Docker. Sail предоставляет прекрасный стартовый полигон для создания веб-приложений с использованием MySQL, Redis и других инструментов без необходимости иметь опыт с Docker.
Вы уже эксперт в Docker? Вы сможете кастомизировать Sail под свои потребности с помощью файла docker-compose.yml .
Начало работы на macOS
Если вы разрабатываете на маке и Docker Desktop уже установлен, вы можете использовать простую консольную команду для создания нового проекта. К примеру, для создания проекта в папке my-app можно использовать такую команду:
curl -s "https://laravel.build/my-app" | bash
Проект будет создан в той директории, в которой вы вызываете команду. Установка Sail может занять несколько минут пока контейнеры приложения собираются на вашей локальной машине.
После создания проекта вы можете перейти в его директорию и стартовать его.
cd my-app ./vendor/bin/sail up
После того, как Docker-контейнеры для приложения будут запущены, оно станет доступно по адресу http://localhost .
Начало работы на Windows
Для начала работы с Laravel Sail на Windows вам также потребуется установить Docker Desktop. Далее вам следует убедиться, что подсистема для Linux установлена и работает (WSL 2). WSL позволяет запускать двоичные исполняемые файлы Linux нативно на Windows 10. Информацию по установке и включению WSL 2 можно найти в официальной документации Microsoft.
После установки и активации WSL 2 вам следует убедиться, что Docker настроен на использование WSL 2 бэкенда. Для этого обратитесь уже к документации Docker для интеграции с WSL.
После этих шагов вы готовы к созданию проектов на Laravel Sail. Запустите терминал Windows и начните новую консольную сессию для вашего WSL 2. Для создания проекта hello можно использовать такую команду:
curl -s https://laravel.build/hello | bash
Имя приложения может состоять только из буквенно-цифровых символов, дефиса или знака подчеркивания. Следующий шаг по запуску проекта полностью такой же, как и в случае с macOS — переход в папку проекта и его запуск с помощью ./vendor/bin/sail up .
Для разработки приложения в рамках WSL 2 отлично подойдет редактор кода от Microsoft — Visual Studio Code и официальное расширение от разработчиков под названием Remote Development.
После установки редактора и расширения, вы можете открыть Laravel проект из терминала, перейдя в корень проект и выполнив команду code . (code + точка). Это откроет проект в редакторе Visual Studio Code.
Начало работы на Linux
Если вы разрабатываете на Linux и Docker Compose уже установлен, вы можете использовать простую консольную команду для создания проекта.
curl -s https://laravel.build/your-project | bash
Старт приложения выполняется точно так же, как и на macOS | WSL 2.
Выбор сервисов для Sail
При создании нового Laravel приложения с помощью Sail, вы можете использовать параметр with , в котором через запятую можно перечислить те сервисы, которые вам нужны. Доступные сервисы включают в себя 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.
curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash
Начальная конфигурация
Все конфигурационные файлы для фреймворка лежат в директории config . Каждая опция задокументирована, так что вы можете спокойно изучить всю конфигурацию по умолчанию.
Laravel сконфигурирован так, что вы обычно можете сразу приступать к разработке. Однако файл config/app.php может потребовать вашего внимания. Здесь лежат такие опции, как timezone и locale, позволяющие установить таймзону и локаль приложения.
Конфигурация на основе среды
Поскольку многие из настроек конфигурации приложения зависят от того, где запущено приложение (на локальной машине или продакшн веб-сервере), многие важные значения для настроек вынесены в файл .env , который лежит в корне приложения.
Файл .env не стоит добавлять в систему контроля версий, поскольку для каждого сервера требуется своя конфигурация. Также это является проблемой безопасности, поскольку файл .env не должен быть считан третьими лицами, ведь в этом случае они могут получить различные ключи и токены, связанные с приложением.
Базы данных и миграции
После создания приложения на Laravel вам наверняка потребуется база данных для хранения информации. Конфигурация БД находится в файле .env. По умолчанию Laravel ожидает работать с базой данных MySQL, находящейся на локальном компьютере.
Для простых приложений, учебных целей и просто для тестирования часто ставят SQLite. Это простой и быстрый движок баз данных.
Если вы не хотите пока ставить MySQL или Postgres, можно поставить SQLite и создать базу следующим образом:
touch database/database.sqlite
Все что вам нужно для использования sqlite это указать настройку DB_CONNECTION со значением sqlite. Остальные опции в случае работы с SQLite не нужны.
Для работы с MySQL оставляем все опции с префиксом DB. DB_CONNECTION=mysql , а в опции DB_DATABASE следует указать имя базы данных.
После конфигурации базы данных вам наверняка придется запустить миграции, что можно сделать следующей командой:
Следующие шаги
Итак, мы создали первое приложение с помощью Laravel, сконфигурировали базу данных и готовы к дальнейшей работе. Далее вам следует изучать главные архитектурные концепции и идеи Laravel. Это такие темы как:
- жизненный цикл запроса
- конфигурация приложения
- структура директорий
- работа с фронтендом
- сервисные контейнеры
- фасады
В зависимости от того, как вы собираетесь использовать Laravel, зависит и список тем, с которыми вам следует ознакомиться. Кратко рассмотрим 2 основных способа использовать фреймворк.
Laravel как Full стэк фреймворк
Если вы хотите создавать на Laravel классические веб-приложения для обработки маршрутов и отдачи html, вам будет полезно изучить работу встроенного шаблонизатора Blade или такой интересной библиотеки, как Inertia, позволяющей связать бэкенд и фронтенд и создавать SPA приложения. Это самый популярный способ использования фреймворка.
Вам также следует изучить такие темы, как роутинг, виды, работа с Eloquent ORM. Также будет плюсом разобраться с компиляцией CSS/JS файлов проекта с помощью Vite.
Laravel как API бэкенд
Laravel также может работать в режиме API бэкенда, обслуживать api-эндпоинты и отдавая контент по json/xml для SPA-приложений или мобильных приложений. Также можно использовать фреймворк для создания API бэкенда для использования в SSR-фреймворках Next.js, Nuxt.js и других. В этом контексте вы можете использовать Laravel для аутентификации, хранения данных и других возможностей, которые он предоставляет.
Вам также потребуется изучать такие темы, как роутинг, Eloquent ORM, возможно Laravel Sanctum (пакет для аутентификации).