Laravel как запустить приложение
Laravel – фреймворк веб-приложения с выразительным, элегантным синтаксисом. Веб-фреймворк предлагает структуру и отправную точку для создания вашего приложения, позволяя вам сосредоточиться на создании чего-то удивительного, но пока мы не будем вдаваться в детали.
Laravel стремится обеспечить потрясающий опыт разработчика, предоставляя при этом мощный функционал: тщательное внедрение зависимостей, выразительный уровень абстракции базы данных, очереди и запланированные задачи, модульное и интеграционное тестирование и многое другое.
Независимо от того, новичок ли вы в PHP, веб-фреймворках или имеете многолетний опыт, Laravel – это фреймворк, который может расти вместе с вами. Мы поможем вам сделать первые шаги в качестве веб-разработчика или подскажем, как вы поднимите свой опыт на новый уровень. Нам не терпится увидеть, что вы построите.
Почему именно Laravel?
При создании веб-приложения вам доступны различные инструменты и фреймворки. Однако мы считаем, что Laravel – лучший выбор для создания современных полнофункциональных веб-приложений.
Прогрессивный фреймворк
Нам нравится называть Laravel «прогрессивным» фреймворком. Под этим мы подразумеваем, что Laravel растет вместе с вами. Если вы только делаете первые шаги в веб-разработке, обширная библиотека документации, руководств и видеоуроков Laravel поможет вам изучить основы, не перегружая себя.
Если вы старший разработчик, Laravel предлагает вам надежные инструменты для внедрения зависимостей, модульного тестирования, создания очередей, событий в реальном времени и многое другое. Laravel оптимизирован для создания профессиональных веб-приложений и готов обрабатывать корпоративные рабочие нагрузки.
Масштабируемый фреймворк
Laravel невероятно масштабируем. Благодаря удобному для масштабирования характеру PHP и встроенной поддержке быстрых распределенных систем кеширования, таких как Redis, горизонтальное масштабирование с Laravel очень просто. Фактически, приложения Laravel легко масштабируются для обработки сотен миллионов запросов в месяц.
Требуется экстремальное масштабирование? Такие платформы, как Laravel Vapor, позволяют запускать приложение Laravel в практически неограниченном масштабе с использованием новейшей бессерверной технологии AWS.
Фреймворк сообщества
Laravel объединяет лучшие пакеты в экосистеме PHP, чтобы предложить наиболее надежный и удобный для разработчиков фреймворк. Кроме того, тысячи талантливых разработчиков со всего мира внесли свой вклад в фреймворк. Кто знает, возможно, вы даже станете соучастником Laravel.
Ваш первый проект на Laravel
Мы хотим, чтобы начать работу с 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.
Начало работы в macOS
Если вы разрабатываете на Mac и Docker Desktop уже установлен, то вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем example-app , вы можете запустить следующую команду в своем терминале:
Конечно, вы можете изменить example-app в этом URL на что угодно. Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предлагает простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
При первом запуске команды up Sail на вашем компьютере будут созданы контейнеры приложений Sail. Это может занять несколько минут. Не волнуйтесь, последующие попытки запустить Sail будут намного быстрее.
Чтобы продолжить изучение Laravel Sail, просмотрите его полную документацию.
Начало работы в Windows
Прежде чем мы создадим новое приложение Laravel на вашем компьютере с Windows, обязательно установите Docker Desktop. Затем вы должны убедиться, что подсистема Windows для Linux 2 (WSL2) установлена и включена. WSL позволяет запускать двоичные исполняемые файлы Linux прямо в Windows 10. Информацию о том, как установить и включить WSL2, можно найти в документации Среда разработки.
После установки и включения WSL2 вы должны убедиться, что Docker Desktop настроен на использование серверной части WSL2.
Теперь вы готовы создать свой первый проект Laravel. Запустите Терминал Windows и начните новый сеанс терминала для вашей операционной системы WSL2 Linux. Затем вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем example-app , вы можете запустить следующую команду в своем терминале:
Конечно, вы можете изменить example-app в этом URL на что угодно. Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предлагает простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
При первом запуске команды up Sail на вашем компьютере будут созданы контейнеры приложений Sail. Это может занять несколько минут. Не волнуйтесь, последующие попытки запустить Sail будут намного быстрее.
Чтобы продолжить изучение Laravel Sail, просмотрите его полную документацию.
Разработка в подсистеме WSL2
Конечно, вам нужно будет иметь возможность изменять файлы приложения Laravel, которые были созданы в вашей установке WSL2. Для этого мы рекомендуем использовать редактор Microsoft Visual Studio Code и его собственное расширение Remote Development.
После установки этих инструментов вы можете открыть любой проект Laravel, выполнив из корневого каталога вашего приложения команду code . с помощью Терминала Windows.
Начало работы в Linux
Если вы разрабатываете в Linux и Docker Desktop уже установлен, то вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем example-app , вы можете запустить следующую команду в своем терминале:
Конечно, вы можете изменить example-app в этом URL на что угодно. Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предлагает простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
При первом запуске команды up Sail на вашем компьютере будут созданы контейнеры приложений Sail. Это может занять несколько минут. Не волнуйтесь, последующие попытки запустить Sail будут намного быстрее.
Чтобы продолжить изучение Laravel Sail, просмотрите его полную документацию.
Выбор служб Sail
При создании нового приложения Laravel через Sail вы можете использовать строковую переменную запроса with , чтобы выбрать, какие службы должны быть настроены в файле docker-compose.yml вашего нового приложения. Доступны следующие службы mysql , pgsql , redis , memcached , meilisearch , selenium и mailhog :
Если вы не укажете желаемые службы, то будет сконфигурирован стек по умолчанию из mysql , redis , meilisearch , mailhog и selenium .
Установка через Composer
Если на вашем компьютере уже установлены PHP и Composer, то вы можете создать новый проект Laravel напрямую с помощью Composer. После того, как приложение было создано, вы можете запустить локальный сервер разработки Laravel с помощью команды serve Artisan CLI:
Установщик Laravel
В качестве альтернативы, вы можете использовать установщик Laravel, включив его в глобальную зависимость Composer:
Чтобы исполняемый файл laravel мог быть обнаружен вашей системой, удостоверьтесь в правильном расположении каталога bin менеджера пакетов Composer, задаваемый системной переменной $PATH . Расположение каталога зависит от вашей операционной системы, но типичными могут быть:
Для удобства установщик Laravel также может создать репозиторий Git для вашего нового проекта. Чтобы указать, что вы хотите создать репозиторий Git, передайте флаг --git при создании нового проекта:
Эта команда инициализирует новый репозиторий Git для вашего проекта и автоматически зафиксирует базовый каркас Laravel. Флаг --git предполагает, что вы правильно установили и настроили Git. Можно также использовать параметр --branch , чтобы задать имя ответвления:
Вместо использования флага --git вы можете использовать параметр --github , чтобы создать репозиторий Git и, соответствующий ему, частный репозиторий на GitHub:
Можно использовать параметр --organization для создания репозитория под определенной организацией GitHub:
Начальная конфигурация
Все файлы конфигурации для фреймворка Laravel хранятся в каталоге config . Каждый параметр имеет комментарии, поэтому не стесняйтесь просматривать файлы и знакомиться с доступными вам вариантами.
Laravel практически не требует дополнительной настройки из коробки. Вы можете начать разработку! Однако вы можете просмотреть файл config/app.php и его комментарии. Он содержит несколько параметров, таких как часовой пояс и локаль, которые вы можете изменить в соответствии с вашим приложением.
Конфигурация на основе окружения
Поскольку многие значения параметров конфигурации Laravel могут различаться в зависимости от того, работает ли ваше приложение на локальном компьютере или на эксплуатационном веб-сервере, многие важные значения конфигурации определяются с помощью файла .env , существующий в корне вашего приложения.
Ваш файл .env не должен быть привязан к системе контроля версий вашего приложения, поскольку каждому разработчику / серверу, использующему ваше приложение, может потребоваться другая конфигурация окружения. Более того, это будет угрозой безопасности в случае, если злоумышленник получит доступ к вашему репозиторию системы управления версиями, поскольку любые конфиденциальные учетные данные будут раскрыты.
Для получения дополнительной информации о конфигурации на основе файла .env и окружения ознакомьтесь с полной документацией по конфигурации.
Конфигурация каталога
Laravel всегда должен обслуживаться из корня «веб-каталога», настроенного для вашего веб-сервера. Вы не должны пытаться обслуживать приложение Laravel из поддиректории относительно «веб-каталога». Такая попытка может открыть доступ к конфиденциальным файлам, существующим в вашем приложении.
Следующие шаги
Теперь, когда вы создали свой проект Laravel, вам может быть интересно, чему научиться дальше. Во-первых, мы настоятельно рекомендуем ознакомиться с тем, как работает Laravel, прочитав следующие разделы документации:
То, как вы хотите использовать Laravel, также будет определять следующие шаги на вашем пути. Существует множество способов использования Laravel, и мы рассмотрим два основных варианта использования фреймворка ниже.
Laravel как клиент-серверный фреймворк
Laravel может служить клиент-серверным фреймворком. Под «клиент-серверным фреймворком» мы подразумеваем, что вы собираетесь использовать Laravel для маршрутизации запросов к вашему приложению и отрисовки интерфейса через шаблоны Blade или с использованием гибридной технологии одностраничного приложения, такой как Inertia.js. Это наиболее распространенный способ использования фреймворка Laravel.
Если вы планируете использовать Laravel именно таким образом, вы можете ознакомиться с нашей документацией по маршрутизации, представлениям или Eloquent ORM. Кроме того, вам может быть интересно узнать о таких пакетах сообщества, как Livewire и Inertia.js. Эти пакеты позволяют использовать Laravel в качестве фреймворка полного стека, при этом пользуясь многими преимуществами UI, предоставляемыми одностраничными JavaScript-приложениями.
Если вы используете Laravel в качестве фреймворка полного стека, мы также настоятельно рекомендуем вам научиться компилировать CSS и JavaScript вашего приложения с помощью Laravel Mix.
Если вы хотите получить преимущество перед созданием своего приложения, ознакомьтесь с одним из наших официальных стартовых комплектов приложений.
Laravel в качестве сервера API
Laravel также может служить серверной частью API для одностраничного JavaScript-приложения или мобильного приложения. Например, вы можете использовать Laravel в качестве серверной части API для своего Next.js приложения. В этом контексте вы можете использовать Laravel для обеспечения аутентификации и хранения / получения данных для вашего приложения, а также пользуясь преимуществами мощных служб Laravel, таких как очереди, электронная почта, уведомления и многое другое.
Если вы планируете использовать Laravel именно так, то вы можете ознакомиться с нашей документацией по маршрутизации, пакету Laravel Sanctum и Eloquent ORM.
Поставьте при помощи composer установщик Laravel, лучше глобально:
После установки, выполните в нужной папке кв командной строке команду laravel new . Например, laravel new blog создаст в подпапке blog приложение laravel, со всеми установленными зависимостями.
При помощи Сomposer
Laravel использует Composer для установки пакетов-зависимостей. Если он еще у вас не стоит, установите его.
Чтобы установить Laravel вам нужно выполнить эту команду в командной строке:
Либо можно скачать архив хранилища с GitHub. Дальше, установите Composer, запустите composer install в корневой папке вашего проекта. Она загрузит и установит зависимости фреймворка.
Разрешение на запись
После установки вам надо открыть для записи папку app/storage со всеми подпапками. См. секцию Установка.
Запуск веб-сервера
Обычно для запуска приложения Laravel нужно, чтобы в системе стоял веб-сервер - Apache или Nginx. Но если вы работаете с PHP версии 5.4 или выше , вы можете запустить встроенный в PHP веб-сервер следующей командой:
Структура каталогов
После установки изучите структуру папок. Папка app одержит подпапки, такие как views , controllers и models . Большая часть кода вашего приложения будет находиться где-то внутри них. Вы также можете посмотреть на содержимое app/config и на настройки, которые доступны для изменения.
Маршрутизация
Для начала давайте создадим наш первый маршрут (роут, route). В Laravel самый простой маршрут - функция-замыкание (анонимная функция, Closure). Откройте файл app/routes.php и добавьте этот код в его конец:
Теперь если вы перейдёте в браузере на адрес /users то должны увидеть текст Users! . Отлично! Вы только что создали свой первый маршрут.
Маршруты также могут быть привязаны к классу контроллера. Например:
Этот маршрут сообщает Laravel, что запросы к /users должны вызывать метод getIndex класса UserController . Для дополнительной информации см. раздел о контроллерах.
Создаём шаблон
Давайте теперь создадим вид или вьюху (view, шаблон), чтобы показывать информацию о наших пользователях. Вьюхи находятся в app/views и содержат HTML-код вашего приложения. Мы создадим два новых вида в этой папке: layout.blade.php и users.blade.php . Начнём с layout.blade.php :
Теперь создадим users.blade.php :
Кое-что из этого кода, возможно, выглядит для вас весьма странно. Это из-за того, что мы используем шаблонизатор Laravel - Blade. Blade очень быстр благодаря тому, что это всего лишь набор регулярных выражений, которые преобразуют ваши вьюхи в чистый код на PHP. Blade позволяет наследовать вьюхи, а также добавляет "синтаксический сахар" к таким частоиспользуемым PHP-конструкциям, как if и for . Для инфромации см. раздел о Blade.
Теперь, когда у нас есть вьюхи, давайте используем их в нашем маршруте /users . Вместо возврата простой строки Users! мы вернём экземпляр шаблона:
Замечательно! Вы создали шаблон маршрута, который наследует разметку страницы (шаблон layout). А теперь перейдём к работе с базой данных.
Создаём миграцию
Для создания таблицы для хранения наших данных мы используем систему миграций Laravel. Миграции позволяют вам определять изменения в БД, используя выразительный синтаксис, а затем легко делиться ими с остальными членами вашей команды.
Для начала настроим соединение с БД. Все соединения настраиваются в файле app/config/database.php . По умолчанию Laravel использует MySQL, и для работы вам нужно указать здесь параметры подключения. Если хотите, можете установить параметр driver в значение sqlite и Laravel будет использовать базу данных SQLite, которая находится в папке app/database .
Для создания миграции мы воспользуемся утилитой командной строки Artisan. Выполните следующую команду в корневой папке вашего проекта:
Теперь найдите созданный файл миграции в папке app/database/migrations . Он содержит класс с двумя методами: up и down . В методе up вам нужно произвести требуемые изменения в таблицах, а в методе down вам нужно их откатить.
Давайте создадим такую миграцию:
Теперь мы можем применить миграцию через командную строку, используя команду migrate . Просто выполните её в корне проекта:
Если вам нужно откатить миграцию - выполните команду migrate:rollback .
Теперь, когда у нас есть таблица, начнём загружать данные.
Eloquent ORM
Laravel поставляется с замечательной ORM (механизм связывания записей БД с объектами PHP - прим. пер.) - Eloquent. Если вы программировали в библиотеке Ruby on Rails, то она покажется вам знакомой, так как Eloquent следует принципам ActiveRecord при взаимодействии с базами данных.
Для начала создадим модель. В Eloquent модель используется для запросов к соответствующей таблице в БД, а также представляет отдельную запись (record) внутри неё. Не беспокойтесь, скоро это станет куда понятнее! Модели обычно хранятся в папке app/models . Создадим файл User.php с таким кодом:
Заметьте, что нам не нужно указывать, какую таблицу нужно использовать. Eloquent следует множеству соглашений, одно из которых - то, что имя таблицы соответствует множественному числу имени класса её модели (user -> users - прим. пер.). Это очень удобно!
Добавьте новые записи в таблицу users , используя ваш любимый инструмент для работы с БД, и мы посмотрим, как Eloquent позволяет их получить, а затем передать в шаблон.
Итак, изменим наш маршрут /users :
Посмотрим, что здесь происходит. Сперва мы получаем все записи в таблице 'users' через метод 'all' модели 'User'. Дальше мы передаём эти записи шаблону через его метод 'with'. Этот метод принимает имя переменной и её значение и таким образом делает данные доступными внутри своего кода.
Отлично. Теперь мы готовы к тому, чтобы показать пользователей в нашем шаблоне!
Отображаем данные
Теперь, когда мы сделали переменную 'users' доступной для нашего шаблона мы можем отобразить её таким образом:
Примечание: Код выше открыт для XSS-атак. Blade, как и простой код на PHP, не экранирует вывод, поэтому вам нужно следить, чтобы выводимые строки содержали экранированый HTML.
Вам может быть интересно, куда подевались вызовы echo . Blade позволяет вам выводить строки, обрамляя их двойными фигурными скобками (>). Теперь вы можете перейти в браузере к своему маршруту и увидеть имена всех имеющихся пользователей.
Это только начало. В этом руководстве вы ознакомились с самыми основами Laravel, но у него есть ещё очень много интересных вещей, которые вам стоит узнать. Продолжайте читать документацию и глубже узнавать возможности, предоставляемые Eloquent и Blade. А может вам больше интересны очереди и юнит-тесты. Или же вам хочется размять мускулы с контейнером IoC. Выбор за вами!
В этом руководстве по Laravel для начинающих мы расскажем, как установить Laravel и создать своё первое приложение на нём. В этом руководстве мы простым языком объясним все необходимые понятия, чтобы вы могли легко изучить Laravel и лучше его понять.
Введение
Laravel – это элегантный, выразительный и гибкий PHP-фреймворк с упором на чистый код и скорость. Он позиционирует себя как «PHP-фреймворк для веб-мастеров». Это бесплатный PHP-фреймворк с открытым исходным кодом, созданный Тейлором Отвелом на основе архитектурной модели Model View Controller (MVC).
Создание веб-приложения с нуля может быть сложной задачей, особенно если вы новичок. Простое веб-приложение содержит различные маленькие и большие компоненты, и вам, возможно, надоест создавать эти компоненты каждый раз, когда вы разрабатываете приложение. Это скучный и повторяющийся процесс, и нет никакого смысла изобретать велосипед. Вот тогда вам на помощь и приходит фреймворк Laravel.
Фреймворк Laravel предоставляет различные PHP-библиотеки и вспомогательные функции. Он обеспечивает общие функции и логику, чтобы упростить и ускорить разработку, а также помочь вам сосредоточиться на более важных вещах.
Чтобы вам было легче изучить Laravel, я написал это руководство специально для неопытной аудитории. Так вам будет проще следовать этому руководству и изучать Laravel.
Что вы должны знать перед использованием этого руководства по Laravel?
- HTML/CSS (Естественно).
- Понимание базового PHP.
- Владение PHP на среднем уровне – это не обязательно, но если у вас есть время, изучите некоторые рядовые вещи: ООП в PHP, абстракцию и т. д.
- Базовое понимание фреймворка MVC.
- Усидчивость – несмотря на то, что изучать Laravel довольно легко, спустя какое-то время вам всё же придется испытать собственное терпение. По крайней мере, у меня были некоторые проблемы из-за того, что я знал PHP, но совсем не разбирался в фреймворках. Когда я изучал фреймворк или успешно завершал проекты, я всё равно путался с базовыми вещами, которые лежат в основе фреймворка MVC. Но я не сдавался.
- Увлечение – да ладно вам, ведь веб-разработка – это весело! По крайней мере, когда используешь Laravel. Лучше всего получать наслаждение от своего познавательного путешествия.
Установка и настройка
Требования для установки Laravel 8
Перед установкой Laravel на вашу локальную платформу (Localhost) вам необходимо установить следующие программы:
- Веб-сервер – Apache или nginx
- >= PHP 7.3
- Некоторые расширения PHP, которые можно установить заранее:
- BCMath
- Ctype
- Fileinfo
- JSON
- Mbstring
- OpenSSL
- PDO
- Tokenizer
- XML
- MySQL (или другие системы управления базой данных, вы даже можете использовать SQLite).
- Composer
- IDE (интегрированная среда разработки) будет очень полезна для разработки на Laravel. Я рекомендую VS Code или Atom. И то, и другое можно использовать совершенно бесплатно.
Пошаговая установка Laravel на локальном хосте:
Шаги для пользователей Mac:
- Убедитесь, что все компоненты установлены.
- Установите Composer, используя следующую команду (если у вас уже установлен и настроен Composer, пропускайте этот шаг).
- Перейти в нужную папку;
- Выполнить команду laravel new projectname.
Шаги для пользователей Windows:
- Скачайте Composer и установите его.
- После успешного завершения установки необходимо проверить, установлен ли он глобально. Откройте командную строку и введите команду «Composer», как показано ниже.
- Перейти в нужную папку;
- Зажать клавишу Shift + щелкнуть правой кнопкой мыши и выбрать пункт «Открыть командную строку здесь»;
- Выполнить команду laravel new projectname/
В нашем примере выполняем:
Руководство по созданию простого CRUD-приложения для составления списка дел на Laravel
Лучший способ изучить программирование – практиковаться. Поэтому здесь мы будем изучать основы Laravel, разрабатывая простое веб-приложение, которое будет выполнять перечисленные ниже функции. В рамках этого руководства по Laravel:
- Вы сможете зарегистрироваться и войти в веб-приложение;
- Вы cможете добавлять задачи в свой список дел;
- Вы cможете редактировать или удалять эти задачи;
- Ваш список виден только вам, поэтому он использует аутентификацию через электронную почту и пароль.
Изучение структуры папок
- Модели (Models) представляют сущности в базе данных, помогают запрашивать базу данных и возвращать данные.
- Представления (View) – это страницы, которые будут отображаться при доступе к приложению. Элементы представлений используются для пользовательского интерфейса приложения.
- Контроллеры (Controllers) обрабатывают запросы пользователей, получают необходимые данные от моделей и передают их представлениям. Контроллеры действуют как посредники между компонентами модели и представления для обработки бизнес-логики, а также входящего запроса.
После того как вы установили Composer и создали свое первое веб-приложение на основе Laravel, вы могли заметить папку приложения с разными файлами и папками внутри. Я знаю, если вы новичок, у вас может возникнуть много вопросов о том, для чего нужны эти папки и т. д. и т. п.
Давайте разберём некоторые из них
Пошаговое создание вашего первого приложения на Laravel
Создайте ваш проект
Если вы не создали свой проект в разделе установки, создайте его сейчас, выполнив следующую команду:
Настройте базу данных
Для нашего приложения нам понадобится база данных, поэтому лучше всего создать её в первую очередь. Laravel поддерживает четыре СУБД:
В этом примере мы будем пользоваться SQLite, так как её проще настроить и использовать. И вам не придется ничего устанавливать – нужно будет всего лишь создать один пустой файл. Другие СУБД должны быть установлены в вашей системе, только потом их можно настраивать соответствующим образом. Laravel позволяет файлу config/database.php настраивать базу данных, но лучше не хранить в нем учетные данные. Вместо этого вы можете использовать файл .env , в котором можно хранить различные типы учетных и других данных.
В корневой папке Laravel по умолчанию находится файл .env .
В этом файле вы найдете код, похожий на следующий:
Замените все шесть строк, приведенные выше на одну строку, указанную ниже, то есть измените значение db_connection на sqlite и удалите остальные строки db, как здесь:
Теперь в папке базы данных создайте файл database.sqlite (это файл базы данных с расширением .sqlite)
Создайте аутентификацию
Laravel также предоставляет «скелет» для аутентификации. Это означает, что всё, связанное с аутентификацией: вход пользователя, регистрация, потеря пароля, двухфакторная аутентификация и т.д. будет создаваться заранее, если вам это необходимо. Это называется Laravel Jetstream .
Есть два способа добавить Jetstream в ваше новое Laravel-приложение. Если вы еще не создали проект, добавьте флажок
для новой команды Laravel:
Так как выше мы уже создали проект, вы можете установить его с помощью установочного пакета. Сначала установите пакет Jetstream , используя следующую команду:
Jetstream в Laravel поддерживает два стека
Liveware или Inerta. Поскольку мы хотим, чтобы этот проект был простым, давайте воспользуемся Livewire и установим Jetstream с помощью следующей команды:
Затем запустите «npm install && npm run dev» , чтобы создать свои объекты.
На данном этапе мы закончили с настройкой и можем приступать непосредственно к созданию приложения.
Миграции
Первый шаг в разработке любого приложения – это создание базы данных. Laravel предлагает отличный способ разработки таблиц и схемы базы данных, а также даёт возможность легко переносить их в разные системы, которые называются «Миграции».
Миграции используются, чтобы создавать, изменять, а также делиться схемой базы данных приложения. Они используются с конструктором схем Laravel, чтобы упростить создание схемы базы данных. В создании миграций для вашей базы данных есть много преимуществ. Вы сможете легко перестроить структуру своей базы данных, используя файлы миграции в производственной и любой другой системе.
Ничего страшного, если это объяснение показалось вам непонятным. Поверьте, скоро у вас всё получится. Просто читайте дальше.
Выполните следующую команду:
Вы найдёте только что созданную миграцию в папке /database/migrations.
Теперь давайте добавим еще два столбца в таблицу задач, отредактировав только что созданный файл миграции.
В новом столбце с именем «description» будет храниться описание задачи, а в столбце с именем «user_id» будет храниться идентификатор пользователя, создавшего задачу. Мы добавили «-> unsigned () -> index ()» после user_if, потому что это внешний ключ из таблицы пользователей.
Теперь мы закончили с созданием схемы базы данных. Чтобы использовать эту схему для создания таблиц в базе данных, выполните следующую команду. Команда migrate обновит изменения, внесенные в схему, в базе данных.
Модели -Eloquent
Eloquent – это ORM (система объектно-реляционного отображения) для Laravel, которая позволяет свободно применять active-record для работы с базой данных. Каждая таблица базы данных может иметь соответствующую модель Eloquent. Модель Eloquent представляет объекты базы данных. Она может использоваться для запроса данных, а также для вставки и обновления данных в таблице. Итак, давайте с помощью команды make: model создадим модель для нашей таблицы задач.
Эта команда создаст модель задачи в папке приложения, как показано ниже.
Отношение «один-ко-многим»
Отношения используются для соединения таблиц. Eloquent даёт возможность связать свои модели через отношения Eloquent. Отношение «один ко многим» означает, что одна модель владеет несколькими объемами другой модели. В нашем примере: у одного пользователя может быть много задач, поэтому между таблицей пользователей и таблицей задач существует связь «один ко многим». Отношения Eloquent очень легко определить и использовать. И преимущество заключается в том, что вам вообще не нужно запускать запросы. Eloquent свяжет модели между собой, поэтому вам придется использовать только функции.
Давайте отредактируем модель задачи и модель пользователя, чтобы создать отношения Eloquent.
Модель задачи (файл task.php находится в app/task.php):
Модель пользователя (файл user.php находится в app/user.php):
Команда Tinker в Artisan (необязательно)
В Laravel существует интерфейс командной строки, известный как Artisan. Artisan содержит различные команды, и среди них – Tinker, которую мы собираемся обсудить. Tinker позволяет вам взаимодействовать со всем вашим Laravel- приложением через окно консоли без необходимости доступа к веб-интерфейсу. Основным преимуществом Tinker является то, что вы можете тестировать отношения, отлаживать данные и получать доступ к Eloquent ORM, задачам, тестам, событиям и т. д. Поэтому мы также будем использовать команду Tinker в нашем руководстве по Laravel. Допустим, вы зарегистрировались в приложении и создали две задачи. Теперь вы проверяете эти задачи прямо в окне консоли, как показано ниже:
Tinker напрямую обращается к базе данных, так что это отличный инструмент для тестирования функций, а также данных.
Контроллеры
Контроллеры используются для распределения трафика между представлениями и моделями. Они могут сгруппировать несколько логических схем обработки запросов в один класс. Таким образом, как правило, они получают весь запрос и, исходя из своей логики, перенаправляют или возвращают соответствующие данные. В нашем примере мы уже подходим к интерфейсу, поэтому мы должны создать контроллеры, через которые сможем обрабатывать запросы, поступающие в наше приложение. Выполните следующую команду, чтобы создать контроллер для задач:
Маршрутизация
Маршрутизация означает принятие запроса и его перенаправление к соответствующей функции. Нашему приложению понадобится пять маршрутов, которые будут выполнять следующие действия:
- Авторизоваться;
- Зарегистрироваться;
- Показать список всех наших задач;
- Добавить новые задачи;
- Удалить существующие задачи.
Laravel Jetstream добавляет вход и регистрацию, поэтому теперь нам нужно позаботиться только о трех маршрутах.
Laravel предоставляет различные файлы маршрутов внутри папки / routes для разных случаев использования. Например, настройка маршрутизации для API будет находиться в файле « /routes/api.php », а настройка маршрутизации для нашего веб-приложения будет находиться в «/routes/web.php».
Теперь давайте отредактируем файл web.php . Ниже вы увидите отредактированную версию этого файла. Внесите соответствующие изменения:
Здесь мы внесли два изменения:
- Мы сгруппировали все маршруты, чтобы можно было применять auth: sanctum и проверенное промежуточное программное обеспечение ко всем маршрутам, тем самым давая доступ к этим страницам только проверенным пользователям, вошедшим в систему.
- Мы изменили маршрут для панели управления, который теперь будет передавать запрос в функцию index в TaskController . Также мы создали маршруты для других действий.
Представления – шаблоны Blade
- blade.php (панель управления покажет список задач);
- blade.php (форма, которая позволит вам добавить новую задачу);
- blade.php (форма, которая позволит вам отредактировать любую задачу).
Laravel включает в себя довольно удобный макет, который содержит панель навигации под названием app.blade.php , расположенную в папке Views / layouts . С помощью механизма Blade в Laravel вы cможете разделить свои страницы на подсекции, а также использовать раздел панели навигации по умолчанию в новых представлениях.
Теперь в папке / resources / views создайте файлы add.blade.php и edit.blade.php с разметкой, приведенной ниже.
В файле dashboard.blade.php также замените весь код на тот, который приведен выше. Представления мы отредактируем позже, после определения функций нашего контроллера с помощью привязки модели к маршруту.
Привязка модели к маршруту (Route-Model Binding)
В Laravel есть множество удивительных функций, которые делают веб-разработку простой, чистой и менее трудоемкой. Одна из наиболее заметных функций подобного рода – привязка модели к маршруту (Route-Model Binding). Это механизм для внедрения экземпляра модели в ваши маршруты. Это значит, вы можете передавать объект модели в маршруты, а также в представления по маршрутам. Эта функция поможет вам легко получить значения объекта в представлении. Ничего страшного, если это объяснение кажется непонятным. Со временем вы все поймёте.
Теперь давайте добавим в TasksController.php функции, обрабатывающие указанные выше маршруты. Они должны выглядеть так, как показано ниже:
Как вы можете видеть, я передаю в функцию объект «Task $ task», а также объект «Request $ request» с помощью механизма привязки модели маршрута.
Редактируем представления
Теперь функции контроллера настроены и возвращают соответствующие представления с прикрепленными объектами модели. Итак, теперь нужно отредактировать наши представления, чтобы они, если нужно, показывали форму и необходимые данные, используя объекты модели, переданные по маршрутам.
Откройте файл dashboard.blade.php и отредактируйте его следующим образом:
Механизм шаблонов Blade позволяет нам использовать PHP внутри HTML, не заключая его в «<? Php?>».
Откройте файл add.blade.php и отредактируйте его следующим образом:
Откройте файл edit.blade.php и отредактируйте его, как показано ниже:
После редактирования этого представления мы собираем все части воедино, так что теперь сможем протестировать своё приложение.
Сначала зарегистрируйтесь, затем войдите в систему, а потом проверьте, можете ли вы создать задачу, отредактировать задачу и удалить задачу.
Запускаем проект на Localhost
Чтобы запустить проект, запустите в окне терминала команду php artisan serve. Убедитесь, что вы находитесь в корне вашего приложения в терминале.
Обязательно прочтите инструкции, прежде чем копировать код с github .
Что делать с этим проектом дальше:
Существует множество вещей, которые можно добавить в этот проект, например:
- Проверка формы:
- Разрешение пользователю создавать несколько списков с несколькими задачами;
- Профиль пользователя;
- И многое другое.
Заключение
Надеюсь, что это руководство по Laravel помогло вам понять основы Laravel, а также мотивировало вас учиться дальше. Пожалуйста, поделитесь своим мнением о Laravel и об этом руководстве. А также вы можете делиться в комментариях к этой статье вашими вопросами и проблемами. Будем рады вам помочь. Спасибо.
Пожалуйста, оставьте свои отзывы по текущей теме материала. За комментарии, подписки, дизлайки, отклики, лайки низкий вам поклон!
Уже последние 10 лет я работаю с PHP и за это время проделал долгий путь. Начиная с ошибок всех новичков, когда ты не в состоянии найти точку с запятой, до попыток построить собственный фреймворк для создания сайтов (не повторяйте это), я наконец очутился перед чем-то по-настоящему стоящим, когда познакомился с объектно-ориентированным PHP.
Почти все CMS системы используют его, включая Joomla, Drupal и WordPress и конечно же большинство фреймворков, такие как CakePHP. Я встретил Laravel в раннем 2014 году и он сразу же поймал меня на крючок. Он не только использует ООП, а он требует его использования. Я должен признать, это был вызов, но я узнал так много нового благодаря ему, и мой код, который я пишу для других систем стал намного лучше!
В этой статье я покажу вам, как начать работу с Laravel от установки всех нужных компонентов до непосредственного запуска системы, покажу как использовать виртуальную машину Laravel Homestead, и в конце концов саму установку Laravel.
Я хочу убедиться, что все смогут установить фреймворк, независимо от используемой платформы: Windows, Linux или Mac. Не беспокойтесь, вам потребуется выполнить это только один раз, и даже если вдруг потребуется снова, то это будет уже гораздо легче, чем в первый раз.
Что такое Laravel?
Laravel это PHP фреймворк, созданный Тейлором Отвелом как более продвинутая версия фреймворка CodeIgniter. Первая бета версия была выпущена в середине 2009 года. Сейчас, к июню 2015, Laravel уже имеет версию 5.1, которая является первой LTS (с длительной поддержкой) версией, что тем самым предоставляет возможность использовать Laravel для больших и масштабных проектов.
Laravel призван помочь вам работать в стандартизированной, элегантной и быстрой манере. Это достигается путем строгих принципов и систем сторонних производителей.
Стандартизация
Laravel иметь строгую Model-View-Controller (MVC) структуру и естественный способ работы с объектно-ориентированным кодом. Эти две особенности также заставляют разработчиков спользовать определенный стиль написания кода.
Пока существуют определенный стиль и методология, все приложения Laravel будут похожи, что поможет другим программистам легко начать с ними работу.
Элегантность
Элегантность Laravel происходит из основ ООП и образа мышления MVC, а так же методологии используемой внутри маршрутизации. Несколько простых характеристик движка в целом заставляют вас писать такой код, который внешне красиво выглядит, правильно организован и максимально сам себя документирует.
Само-документирование кода является замечательным побочным продуктом правильно написанного объектно-ориентированного кода. Вы можете получить почти что читаемые предложения, если дадите правильные имена своим классам, функциям и свойствам.
Более важно то, что все это переносится в предсказуемый и трестируемый код, который производит последовательные результаты каждый раз.
Скорость
Скорость, с которой можно построить приложение - удивительна. Если вы новичок в ООП, Composer и использовании терминала, то сначала все может показаться не очень очевидным, на как только вы во все вникните, вы будете удивлены открывшимися возможностями.
Laravel настроен для легкой работы со сторонними библиотеками через Composer, это означает что добавление в проект Facebook API или MailChimp API, логгеров, профайлеров и других разных инструментов займет у вас лишь несколько нажатий на клавиатуре.
Установка Laravel
Установить Laravel можно на большинство серверов, или же воспользоваться виртуальной машиной. Вот основные требования:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
Для запуска Laravel локально я использую Laravel Homestead. Homestead является боксом Vagrant, который доступен бесплатно. По ссылке выше можно перейти на подробные инструкции по установке, а я укажу здесь только основные шаги:
На сервере должен быть установлен пакетный менеджер Composer. Laravel использует его для скачивания необходимых сторонних библиотек.
Хотя git и не является обязательным, но он облегчит вашу жизнь. Git - это система контроля версий, и множество людей используют его для своих проектов, располагая их на GitHub. Чтобы иметь возможность использовать его эффективно, нужна консольная команда git, которую мы установим ниже.
1. Установка Composer
Composer может быть установлен локально или глобально. Я предпочитаю устанавливать глобально. Для более детальных инструкций, касающихся установки на разных операционных системах, взгляните на Инструкцию для начала работы.
Пользователи Linux и OSX сначала должны убедиться что существует директория /usr , и если нет, то создать ее. Затем выполняем следующую команду:
Пользователи Windows могут воспользоваться установщиком из Инструкции для начала работы. Если хотите иметь возможность выполнять команду composer из любого места, то следует добавить его в ваш path.
Вот инструкции для того, чтобы добавить папку в path.
2. Установка Git
К счастью git очень прост в установке, так что обратите внимание на Инструкцию по установке за более подробными сведениями.
На машинах Linux можно установить git следующей простой командой.
В OSX, наиболее простым способом добавить поддержку git является установка Xcode Command Line Tools, или перейти на страницу по установке git и скачать последнюю версию.
Пользователям Windows следует перейти на страницу скачивания Git и запустить установщик.
3. Установка VirtualBox и Vagrant
Первое, что потребуется это VirtualBox и Vagrant. Оба они являются простыми установочными файлами, так что просто скачиваете их и устанавливаете.
4. Скачивание бокса
Бокс содержит в себе операционную системы и другое программное обеспечение, которое может потребоваться для запуска локального сервера с Laravel. Вы можете скачать box одной простой командной из терминала.
Потребуется некоторое время для скачивания бокса, так что можно пока отойти и выпить кофе.
5. Установка Homestead CLI
Чтобы установить интерфейс командной строки для Homestead, нужно клонировать git репозиторий. Так как у нас теперь установлен git, то можно воспользоваться одной командой. Выполните следующее в папке, где вы собираетесь хранить все свои проекты Laravel.
Я работаю в OSX и у меня есть папка "websites" внутри домашней директории. Внутри этой папки у меня есть папка "wordpress", которая содержит проекты на WordPress, запускаемые с другого бокса Vagrant. Я выполняю команду выше в папке "websites". Она создает папку "Homestead", и теперь все мои проекты Laravel будут здесь.
Если вы хотите быть на передовых позициях PHP, можно установить версию Homestead с PHP 7. Воспользуйтесь этой командой:
Чтобы инициализировать Homestead, необходимо выполнить bash init.sh из директории Homestead, что создаст необходимые файлы в директории
6. Настройка Homestead
Первое что необходимо сделать - это создать SSH ключ и добавить путь к нему в файле Homestead.yaml . Создать SSH ключ на машине Linux или OSX воспользуйтесь следующей командой:
В Windows самой простой способ - это использовать инструмент Git Bash. Он похож на терминал или командную строку. Включите его, щелкнув правой кнопкой мыши по рабочему столу и нажав Git Bash.
Следующим шагом будет модификация файла
/.homestead/Homestead.yaml . Теперь на самом деле осталось не так много, потому что все уже должно быть почти идеально установлено. Если вы его откроете, то должны увидеть:
- Провайдер уже установлен в virtualbox , а это то что мы будем использовать.
- Опция авторизации имеет значение
Убедитесь что вы прописали ваши сайты следующим образом:
Последним шагом будет добавить домены в файл с хостами на вашем компьютере. В Linux и OS X, этот файл находится в /etc/hosts , а в Windows - C:\Windows\System32\drivers\etc\hosts . Нужно добавить эти две строчки:
В завершение, чтобы расшарить папки между вашей системой и виртуальной машиной, нужно перейти в секцию с папками. Я настроил ее следующим образом:
7. Запуск бокса Vagrant
Это будет очень просто! Переходим в директорию Homestead и выполняем команду vagrant up . В первый раз это может занять некоторое время, но последующие запуски будут чрезвычайно быстрыми. При первом запуске операционная система устанавливается и настраивается, а все последующие - просто запускается.
/websites/Homestead/Code и создадите папку store/public с файлом index.php в ней, то его содержимое будет выведено. С этого момента вы можете приступить к созданию своего сайта!
Основы Homestead
Все что вы сделали, нужно будет выполнить лишь один раз, кроме команды vagrant up для запуска сервера. Не беспокойтесь, если инициализация Homestead вам до сих пор не очень понятна. Сейчас вам нужно лишь знать как использовать его.
Каждый раз когда вы останавливаете сервер с помощью команды vagrant halt или же выключаете компьютер, вам нужно будет воспользоваться командой vagrant up чтобы снова запустить сервер. Есть еще несколько вещей, которые вам следует знать, так что давайте обратим внимание на некоторые повседневные задачи.
Для более сложной конфигурации вам может понадобится SSH доступ к виртуальной машине. Вы можете сделать это, перейдя в Homestead директорию в вашем терминале и выполнив команду vagrant ssh . Вы получите доступ к виртуальной машине, и сможете сделать на ней все необходимое.
Подключиться к базе можно используя пользователя homestead и пароль secret . Если вы находитесь в терминале, то можете воспользоваться командой mysql -u homestead -p и введя свой пароль получить доступ к командой строке базы.
Если вы используете приложение на подобии Sequel Pro, то используйте хост 127.0.0.1 , вашего пользователя и пароль, и 33060 в качестве порта.
Установка Laravel
Нашей первой задачей будет скачать установщик Laravel. Выполните следующую команду в терминале:
Теперь вы можете использовать команду laravel в командной строке для доступа к множеству функций Laravel. Если это не сработало, то нужно поместить директорию
/.bash_profile файл - в зависимости от ваших настроек. В нем добавьте следующую строчку:
Чтобы задействовать изменения, наберите source
/.bashrc , или закройте и откройте окно терминала и снова попробуйте набрать laravel . Если вы пользователь Windows, то для вас доступны следующие инструкции.
Помните папку store , которую мы настраивали, и которая содержит код нашего будущего магазина? Я вернулся, удалил эту папку и воспользовался терминалом, чтобы перейти в родительскую директорию
Следующие шаги
В следующих статьях о Laravel я покажу вам, как новичку начать писать сайты. Laravel строго построен на объектно-ориентированном PHP, поэтому я рекомендую вам взглянуть на прекрасную статью ООП для начинающих от Джейсона Ленгсторфа. Я постараюсь объяснить все что cмогу, но если вы ознакомитесь сначала с концепциями из этой статьи, то затем всё будет идти более гладко.
Читайте также: