Laravel - свободная PHP-инфраструктура с открытым исходным кодом, рассматривается как один из лучших фреймворков PHP. У него есть отличное сообщество, фантастический сайт документации и отличные видеоуроки. Версия 1.0 была запущена всего несколько лет назад. Выполнив установку Laravel, можно создавать и поддерживать высококачественные веб-приложения с минимальными нагрузками.
Кратко про Laravel
Laravel - это набор компонентов и библиотек общего назначения в сочетании со стандартами программирования, которые упрощают процесс разработки. Основным преимуществом установки Laravel является его гибкость. Большинство фреймворков заставляют программиста работать определенным образом. Laravel использует несколько иной подход. Он не форсирует стиль, а только предлагает его. Таким образом, метод сочетает в себе все преимущества стандартизации с возможностью добавления дополнительных функций.
Сегодня установка Laravel является очень востребованной. Этот фреймворк выполнен на основе данных, предоставленных HotFrameworks. Laravel занимает 8 место в общем рейтинге и 1 место в рейтинге основанных на PHP фреймворков, имеющих более 23 тысяч звезд в GitHub. Для сравнения отметим, что CodeIgniter находится только на 2 месте с 12 тысячами звезд.
Технологическая документация и монтаж
Как и в случае с каждой новой технологией, пользователи должны начать изучать Laravel, прочитав документацию. Сейчас Laravel 5.7 является самой стабильной версией, а знакомство начинают с официального сайта. Документация на установку Laravel аккуратно структурирована. Стоит упомянуть, что иногда полезно взглянуть на более старые версии документации.
Документация Laravel предлагает использовать Homestead - это хорошее долгосрочное решение, но для его воплощения требуется гораздо больше времени настройки. После создания новых серверов борьба идет за каждую секунду, поэтому проще придерживаться альтернативного решения: Artisan. Он является основным инструментом в работе с Laravel framework для многих пользователей.
Одна из его функций - запуск сервера командой "./artisan serve". Если нужно остановить его, просто закрывают Artisan, используя стандартный ярлык Unix Ctrl + C. Самое первое, что нужно сделать перед началом работ - это установить PHP со всеми необходимыми расширениями и MySQL. Подробная информация об этом процессе зависит от ОС и может быть найдена в документации на профильном сайте. Следующий шаг - установка Composer. Когда есть все, что нужно, можно установить framework двумя способами - с помощью Composer или с установщиком Laravel.
Структура пакетов
Laravel очень гибкий, что заметно, когда пользователь использует его способность создания собственной структуры папок. У фреймворк Laravel есть предварительно созданная структура, но ее можно значительно расширить. Основная папка содержит следующие подкаталоги:
- Приложение - сердце проекта, большинство кода будет размещено здесь.
- Консоль - папка содержит консольные команды и ядро, где их регистрируют.
- События - здесь хранятся все события.
- Исключения - это место, где создаются исключения. Этот каталог также содержит файл с именем handler.php, который отвечает за глобальную обработку исключений. Если нужно их самостоятельно обрабатывать, рекомендуют создавать подпапку под названием Handlers и заполнить ее файлами, которые реализуют интерфейс Illuminate \ Contracts \ Debug \ ExceptionHandler.
- HTTP - все, что связано с доступом к приложению из интернета.
- Контроллеры - содержат контроллеры, используемые приложением.
- Middleware - включает классы декоратора, которые могут изменять запрос до его передачи контроллеру, а также ответ перед его отправкой пользователю.
- Запросы - содержат файлы, отвечающие за автоматическую проверку запросов.
- Routes.php - этот файл содержит маршрутизацию.
- Рабочие места - эта папка содержит «отложенные задания», которые могут выполняться в будущем.
- Слушатели - здесь будет происходить обработка событий. Здесь же размещают слушателей и подписчиков.
- Политики - применяемые виды политики, используемые для управления правами пользователя.
- Поставщики - содержат поставщиков. Это классы, ответственные за загрузку и управление приложениями.
- Модель - папка для хранения моделей.
- Контракты - еще одна папка, которую нужно оформить. На этот раз она основана на стиле программирования Laravel, где создают интерфейсы, называемые контрактами, которые будут группировать функциональные возможности приложений.
В программе существует еще много важных пакетов, с которыми лучше ознакомиться в документации на профильном сайте перед созданием проекта.
Настройка конфигурации
Когда установлен framework, выполняют установку Laravel в текущую папку и осуществляют настройку. В большинстве случаев можно придерживаться значений по умолчанию, если не нужно использовать некоторые дополнительные функции. Основная часть вариантов - хорошо задокументированная, например:
- Env. Первым шагом в каждой конфигурации является подготовка файла .env. Это самый важный файл, так как он содержит все учетные данные и конфигурацию, специфичную для сервера, в отличие от приложений, которые хранятся в каталоге config.
- APP_ENV - это значение определяет среду, используемую на сервере. Может иметь два разных значения: локальное, которое готовит приложение для тестирования на сервере разработки, и производственное, полностью оптимизирующее приложение для массового использования в производстве.
- APP_DEBUG - это поле определяет, будут инструменты отладки включены или нет. При установке Laravel по рекомендациям бывалых разработчиков в этом поле требуется сохранить его в синхронизации с APP_ENV. Если APP_ENV = production, тогда APP_DEBUG = false, в противном случае APP_DEBUG = true.
- APP_KEY - это случайный ключ, используемый в процессе генерации и проверки паролей. Если разработчик изменит данное значение после первоначальной настройки, это приведет к тому, что все пароли, созданные Laravel, перестанут быть действующими и потребуют регенерации. Это поле заполняется автоматически во время установки Laravel. Если нужно изменить его, используют следующую команду: "./artisan key: generate".
- APP_URL - известно, что это такой url адрес, который представляется и используется для создания путей из ссылок и активов.
- DB - эти шесть полей используются для настройки соединения с базой данных. Большинство полей не требуют пояснений. Единственное исключение - DB_CONNECTION, где разработчики должны прописать mysql.
Использование базы данных
CONFIG / database.php - файл позволяет создавать более совершенную конфигурацию базы данных. Laravel без установки каких-либо внешних пакетов поддерживает следующие решения: MySQL, pgSQL, SQLite, SQLSRV. Большинство конфигураций уже подготовлены, единственным исключением является SQLSRV, для чего требуется добавить еще один раздел.
В этом файле можно выбрать имя таблицы, используемой для хранения миграций, а также настроить соединение Redis.
CONFIG / mail.php - этот файл отвечает за отправку писем. Все необходимые параметры устанавливают в файле .env. Использование SMTP не является единственным способом отправки писем в Laravel. Альтернативы включают следующее:
- Отправка почтового сценария по пути скрипта, который установлен в его поле.
- Почта для использования функции mail () PHP и сторонних решений (mailgun, mandril, amazon ses или sparkpost).
Во время разработки можно установить драйвер для регистрации и сохранения электронной почты в журнале вместо отправки сообщения или добавления следующего раздела:
'to' => [
'address' => 'dev@domain.com'
'name' => 'Dev Example' ]
После этого будет происходить автоматическое перенаправление всех адресов электронной почты на целевой адрес.
Управление файловыми системами
CONFIG / FILESYSTEMS.PHP - этот файл позволяет управлять файловыми системами, которые разработчик использует в своем проекте. Laravel использует множество файловых систем благодаря библиотеке под названием Flysystem. Иногда нужно, чтобы несколько файлов хранились локально, а некоторые - в облаке. Эта комбинация также возможна с Laravel. Конфигурация по умолчанию позволяет хранить файлы с открытым доступом в storage / app и storage / app / public. Также доступно облако Amazon (s3). Выполняют некоторые изменения и замены раздела s3 дисков со следующим кодом.
Таким образом, можно разместить учетные данные в одном месте (файл .env). При этом будет более чистый код, а ключи намного безопаснее, без риска случайного размещения их в репозитории.
Система очередей CONFIG / QUEUE PHP
Очереди - это способ выполнения трудоемких заданий в режиме «позже». Для этого есть несколько доступных решений:
- Синхронизация. Это значение по умолчанию и самое простое решение, которое означает «нет очередей». Очередь заданий выполняется во время работы скрипта. Это единственное решение, которое не нуждается в дополнительной инфраструктуре. Можно оставить его, если не планируется использовать очереди и при коротких заданиях.
- База данных. Простейшие методы, которые будут использовать базу данных для хранения заданий в очереди. Конфигурация требует, чтобы было выбрано соединение с базой данных и таблицей для хранения заданий. При этом поле драйвера должно быть действительным именем соединения, а не драйвера. Необходимая миграция может быть сгенерирована с помощью мастера "./artisan queue:table". В случае механизма базы данных очень важно правильно установить поле expire. Оно используется для предотвращения обработки одной и той же работы дважды. Для этого оно должно быть выше значения тайм-аута, используемого при запуске работников.
- Redis. Конфигурация так же проста, как и выбор имени соединения и значение expire, а beanstalk и sqs - это коммерческие решения, которые могут быть настроены с использованием правильных учетных данных. Предлагается использовать функцию env () для их хранения в файле .env.
- Failed - используется для выбора таблицы в базе данных, которая нужна для хранения неудачных заданий. Миграция может быть создана с помощью мастера "./artisan queue:failed-table".
Настройка сторонних пакетов
Некоторые сторонние пакеты требуют дополнительной настройки. В большинстве случаев они будут использовать файл с именем, соответствующим своему имени, но некоторые из них этого не делают. Эти пакеты хранят свою конфигурацию в CONFIG / SESSIONS.PHP. Этот файл отвечает за настройку сеансов. Lifetime и expire_on_close укажут, как записанный сеанс следует хранить, если он должен быть удален после закрытия браузера. Поле драйвера определит, где должен храниться сеанс:
- file - хранится в файлах, помещенных в папку, выбранную с полем файлов;
- cookie - отправляется с каждым ответом и возвращается в каждом запросе браузера;
- database - хранится в базе данных, которая определяется полями подключения и таблицами.
Миграция может быть произведена с помощью мастера:
- ./artisan session:table;
- apc - хранится в ОЗУ серверов;
- memcached - хранится на сервере memcached, используя конфигурацию из файла cache.php;
- redis - хранится на сервере redis;
- array - сеанс сохраняется только для одного вызова. Это технически отключенная система сеансов.
Есть еще пакет, который нужно добавить перед началом разработки. Laravel-DebugBar - пакет, который добавит панель внизу веб-сайта, нужную при отладке. Эта панель будет отображаться только в том случае, если включена отладка. Установка этого пакета очень проста.
Предварительные требования
Перед установкой Laravel убеждаются, что имеются следующие разделы и элементы:
- Веб-сервер.
- PHP.
- MySQL.
- Composer install Laravel.
- Интегрированная среда разработки (IDE).
Например, будет использовать кросс-платформа XAMPP. Она поставляется с Apache, MySQL и PHP. Если у пользователя нет XAMPP, можно скачать ее в интернете. Если он предпочитает работать с другими типами веб-серверов, то есть IIS, созданный на веб-сервере, он также хорошо подходит для Laravel.
Composer - это менеджер зависимостей для PHP. О нем можно прочитать на официальном сайте и скачать по предлагаемой ссылке.
Установка Laravel на Windows 10
После установки Composer переходят на htdocs в XAMPP. Находят корневой веб-сервер и открывают приложение Windows Explorer :
C:/xampp/C:/xampp/htdocs.
Далее нужно кликнуть мышью в любом месте и выбрать Composer, как показано на изображении ниже.
Выбирают композитор. Появится следующее окно командной строки:
Создают новый проект с применением композитора. Выполняют: composer create-project laravel/laravel larashop.
В командной строке получают следующий результат:
Дожидаются завершения установки, и проводят тестирование.
Для этого вводят в браузер localhost/larashop/public/. Может возникнуть вопрос: url адрес - что это такое? Поясним, этот адрес открывает пользователю гостевую страницу.
Настройка нового проекта
Информация о конфигурации приложения находится в config/app.php. При настройке нового проекта последовательно осуществляют следующие этапы:
- Устанавливают режим отладки, который используется для определения того, сколько информации должно отображаться при возникновении ошибки.
- Устанавливают часовой пояс - этот параметр используется для функций даты и PHP.
- Устанавливают ключ приложения, значение которого используется для шифрования.
Порядок действий установки Laravel:
- Открыть файл /config/app.php. Найти следующий код: 'debug' => env('APP_DEBUG', false).
- Обновить его до следующего кода: 'debug' => env('APP_DEBUG', true). Он устанавливает режим отладки в значение true. Это заставит Laravel отображать подробную информацию при возникновении ошибки. Она полезна для устранения неполадок.
- Установить часовой пояс. Для этого находят код 'timezone' => 'UTC', устанавливают часовой пояс в UTC. Это значение по умолчанию. Если нужно иметь другой часовой пояс, можно заменить UTC на нужное значение.
- Установить ключ приложения. Для этого находят следующий код 'key' => env('APP_KEY', 'SomeRandomString').
- Обновить его до кода 'key' => env('APP_KEY', 'inesindinemwanawabambuyabakoiwe'). Где он представляет собой строку с 32 символами, которая будет использоваться в качестве ключа шифрования.
Конфигурация аутентификации
Файл конфигурации аутентификации находится в "./config/auth.php". В общих случаях оставляют значения по умолчанию такими, какие они есть. Если нужно, можно изменить их, в соответствии с пользовательскими требованиями. Файл конфигурации базы данных находится в "./config/database.php". По умолчанию MySQL будет использоваться как механизм базы данных. Можно установить его в другую систему управления базами данных, если нужно.
Обновляют следующие ключи:
- База данных.
- Имя пользователя.
- Пароль.
Значения в приведенном выше примере:
- 'database' => env('DB_DATABASE', 'larashop') устанавливает имя базы данных в larashop. Можно продолжить и создать пустую базу данных larashop в MySQL.
- 'username' => env('DB_USERNAME', 'root') устанавливает корень в качестве имени пользователя базы данных, который будет использоваться для аутентификации. Нужно использовать действительное имя пользователя для своего экземпляра MySQL.
- 'password' => env('DB_PASSWORD', 'melody') устанавливает мелодию в качестве пароля, который будет использоваться для входа в систему. Нужно использовать действительный пароль для своего экземпляра MySQL.
Таким образом, будет создана хорошо сконфигурированная и полностью действующая база приложений, работающая от Laravel. В целом специалисты подтверждают, что он очень прост, интуитивно понятен и удобен для пользователей.