Разработка веб-приложений обычно состоит из двух основных частей. Работа на стороне сервера или back-end части включает в себя подготовку сервера, разработку структуры базы данных и взаимодействие с клиентской частью. Клиентская сторона или внешний интерфейс — это процесс создания страниц, видимых пользователю в его/ее браузере. Эта часть включает в себя следующее: дизайн, верстка, создание анимации и интерактивных элементов, а также взаимодействие с сервером. Над этими частями обычно одновременно работают две группы разработчиков. Однако иногда за эти задачи отвечает один человек, а сам процесс называется Full Stack development.

На сегодняшний день существует большое количество веб-фреймворков, упрощающих и ускоряющих разработку веб-приложений, но все они имеют узкую направленность, а именно позволяют работать только с одной (front-end или back-end) частью проекта. И лишь немногие фреймворки позволяют эффективно объединить эти две составляющие в один проект. Laravel представляет собой один из таких фреймворков.

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

— Schema — это класс, который предназначен для создания, удаления и изменения структуры таблиц в базе данных.

— DB — класс, предназначенный для работы с данными, хранящимися в таблицах (выполнение запросов, работа с транзакциями).

— Eloquent ORM — это реализация шаблона ActiveRecord, позволяющая работать с таблицами базы данных как с «моделями».

— Scout предоставляет механизмы для создания полнотекстового поиска в моделях.

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

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

– Создайте набор представлений, которые будут представлять эти данные. Laravel реализует этот механизм с помощью собственного шаблонизатора Blade.

— Создать набор так называемых «маршрутов», которые будут обрабатывать запросы, получать данные и формулировать ответ. Для удобства вся бизнес-логика приложения сгруппирована в контроллеры, хотя есть возможность обрабатывать запросы прямо в роутере.

Диапазон готовых решений, которые Laravel предлагает разработчикам, довольно широк. Прежде всего, это связано с настройкой среды разработки. Используя Homestead (для пользователей Linux) или Valet (для пользователей Mac), вы получаете виртуальную машину со всем необходимым для начала разработки:

- Веб сервер

— Нгинкс

— Гит

— Узел

— Композитор

— PHP

— MySQL

— Постгрес

— Sqlite3

— МарияДБ (5.1+)

— Радис

— Мемкэш

- бобовый стебель

А перечень готовых инструментов и сервисов, предлагаемых разработчику, поражает своим разнообразием:
Artisan — это интерфейс командной строки. Он позволяет запускать команды, которые будут полезны при создании приложения Laravel.
Route — это класс, содержащий набор методов для быстрого создания маршрутов.
Middleware предоставляет удобный механизм фильтрации HTTP-запросов, которые обрабатывает приложение.
Request — это класс, который содержит набор методов для обработки HTTP-запросов.
Ответ содержит механизмы формирования ответа сервера. Основные типы ответов — View, JSON, File Downloads и Redirect.
Session — класс для работы с сессиями.
Validation содержит механизмы проверки поступающих данных. Laravel предоставляет несколько разных подходов к проверке данных.
Аутентификация и авторизация содержат инструменты для аутентификации и авторизации пользователей.
Кэш — класс для работы с кешем. В качестве драйвера кеша можно использовать базу данных, Memcache или Redis.
Collections — это класс, предоставляющий набор методов для работы с массивами данных.
File Storage — класс для работы с файловым хранилищем (локальная файловая система, S3, FTP). Этот класс содержит методы для загрузки и скачивания файлов, а также работы с ними.
Почта содержит механизмы для отправки электронных писем.
Задания и очереди. . Laravel позволяет разработчикам легко создавать консольные команды, настраивать их в очереди или вводить в планировщик.
Помощники — это набор функций для работы с массивами, строки, URL-адреса, настройки проекта, кеш и ведение журнала.

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

Проект Laravel содержит готовый файл package.json с набором библиотек, которые используются почти в каждом проекте, jQuery, lodash и axios. Разработчики, предпочитающие различные JS-фреймворки, оценят предустановленный механизм. Это позволяет разработчику быстро менять инструменты, которые будут использоваться при разработке приложения. Изменение предустановки автоматически сгенерирует новый package.json с подключенными библиотеками, которые необходимы для работы с соответствующим фреймворком. Сегодня Laravel поддерживает следующее:

— Vue Preset — это проект, использующий библиотеку Vue JS.

— React Preset — это проект, использующий библиотеку React JS.

— Bootstrap Preset — это проект, использующий фреймворк Bootstrap.

– Удалить все настройки.

Также возможна установка дополнительных наборов с Github.
В процессе разработки и после завершения проект следует периодически «собирать», а именно объединять все модули в один или несколько файлов. Laravel Mix будет полезен для предоставления набора API для определения основных шагов Webpack для создания приложения Laravel. Разработчик создает собственный конвейер активов, используя простые методы.

Laravel Mix содержит следующие методы:
Работа со скриптами JavaScript.

— .js

— .скрипты

— .реагировать

- .извлекать

— .копировать

— .вебпакконфиг

– .browserSync

Работа с CSS-скриптами.

- .меньше

— .ass

— .стилус

- .опции

— .стили

– .исходные карты

Для запуска процедуры сборки достаточно выполнить одну из следующих команд:

— npm запустить разработчик

— запуск производства npm

— нпм запустить смотреть

- npm запустить просмотр-опрос

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

Например, мы разработали Веб-браузер S3 для проектов, использующих Amazon S3 в качестве хранилища данных.

Это, по сути, полноценный файловый менеджер, позволяющий пользователю работать прямо в браузере с файлами и папками, размещенными в S3.

Но Метатрон сложнее. Он позволяет зарегистрированным пользователям загружать видеофайлы (с компьютера или по ссылке) и запускать преобразование и анализ видео (контекстный поиск по ключевым словам).

На основе этих данных будет создана мощная поисковая система видеоконтента. Кроме того, Laravel отлично подходит для разработки крупных проектов, таких как Zantepay.

Данный портал создан в рамках проекта ICO для продвижения на рынке новой криптовалюты Zantecoin (ZNX). Зарегистрированные пользователи могут покупать или обменивать криптовалюту, получать бонусы, участвовать в реферальной программе и иметь множество других возможностей. Портал активно развивается и уже насчитывает около 10 тысяч пользователей.

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

Автор: Андрей Камбур, Full stack разработчик

Первоначально опубликовано на asd-team.com 21 августа 2018 г.