Проекты

Laravel: что это за PHP-фреймворк и какие задачи с его помощью можно решать

На примере сервиса подбора автостраховок

Laravel: что это за PHP-фреймворк и какие задачи с его помощью можно решать

Коротко о проекте

  • 01
    Что за инструмент

    Laravel — фреймворк/framework PHP

  • 02
    Где используем

    Сервис подбора автостраховок GetPolis

  • 03
    Почему выбрали этот фреймворк
    • Ускоряет написание кода и запуск новых функций
    • Не теряет в скорости работы из-за механики очередей
    • Благодаря этому framework очень удобно искать и исправлять ошибки в PHP-коде благодаря канальной системе логирования
    • Обеспечивает безопасность: хранит пароли, есть механизмы аутентификации
  • 04
    Результаты
    • 16 тыс. личных кабинетов агентов и клиентов в cервисе
    • >100 тыс. проданных полисов за год

GetPolis подбирает КАСКО, напоминает о покупке полиса и помогает создать агентскую сеть

GetPolis — сервис для подбора полисов для автострахования: он сравнивает цены на ОСАГО и каско и предлагает покупателю лучший вариант. Cервис зарабатывает на комиссиях от страховых компаний, поэтому клиенты не платят за поиск предложений.

У сервиса два типа пользователей: конечные клиенты — владельцы автомобилей, и агенты — посредники, которые используют сервис для работы со своими клиентами.

Что умеет сервис:

  • Эффективно подбирать полисы по цене, с учетом скидок и акций.
  • Рассылать клиентам уведомления о том, что страховка вот-вот перестанет действовать, и предлагать купить новую.
  • Отправлять запросы в ГИБДД.
  • Упрощать работу по созданию сети. Например, с его помощью можно добавлять данные и итоги продаж агентов, рассчитывать для них комиссию с продаж.

Процесс разработки занял 10 месяцев.

Полный набор функций доступен с любого устройства. Он отображается как сайт с адаптивной версткой. Мобильного приложения или web application у ресурса пока нет.

Сервис сравнивает стоимость полисов от 15 страховых компаний. Он всегда показывает актуальную стоимость, благодаря подключению через API

Клиент обратился за помощью, когда подрядчик сорвал дедлайн

Заказчик обратился к нам, когда возникли сложности с предыдущим разработчиком — он не успевал в сроки создать и запустить сервис. А это влияло на будущие продажи и потенциальную прибыль компании.

Первое, что мы сделали — провели аудит уже разработанной части cервиса. На его основе решили, что не будем создавать с нуля кодовую базу под сайт, а доработаем что есть. Это дало нам возможность уложиться в изначальные сроки клиента, при этом не сокращая функции.

Какие задачи решает фреймворк Laravel

Заказчик передал нам проект после того, как другой подрядчик не справился с разработкой. Чтобы быстрее запустить сервис, мы решили не переделывать кодовую базу под сайт с нуля, а доработать ее.

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

Можно быстро создавать новые сущности, например, добавлять на сайт личные кабинеты или страница заказов. Инструменты Laravel сопоставляет программный код и URL и благодаря этому оптимизирует написание маршрутов.

Для примера показываем, как выглядит код маршрута на получение данных в Laravel. При обращении по указанному адресу framework Laravel вызывает функции контроллеров, которые выполнят операции и вернут в ответ данные или веб-страницу с разметкой

У ресурса высокая производительность. При необходимости сервис умеет справляться одновременно с несколькими задачами. При этом framework Laravel не замедляет скорость, на которой обычно работает веб-сайт. Например, сервис можно заниматься обновлением справочников автомобилей и отправлять уведомления, пока клиент оформляет страховку.

Сервис управляется с потоком задач благодаря механизму очередей: Laravel разбивает задачи на несколько частей, изолирует их друг от друга и занимается выполнением параллельно.

Свежие данные загружаются на сайт в режиме реального времени. По умолчанию полис появляется в личном кабинете клиента сразу после оплаты. Поэтому клиент не теряет время: выбрал страховку, оплатил, cкачал документ, и готово. Это позволяет решить задачу за пять минут или меньше.

Если что-то пошло не так со стороны продавца, используется функция «планировщик задач». Сервис бы опрашивает различные компании — у кого есть нужный полис. Как только выясняет, документ загружается в личный кабинет на сайте, и задача решена. Такие поиски занимают не более получаса.

Чтобы найти полис, мы можем написать задание в файле Kernel. php, как на данном скриншоте: в формате cron задается интервал для вызова команды. Плюс в том, что писать задания на уровне операционной системы не нужно: фреймворк Laravel все организует сам

Удобно находить и устранять любые баги. Если объяснять простыми словами, Laravel умеет разделять ошибки по типам.

Фреймворк использует технологию логирования, основанную на каналах, то есть логи из разных частей системы записываются в разные каналы. Еще Laravel framework работает с несколькими типами вывода логов, например можно выводить их в отдельные файлы на диске, передавать в Slack или другой сервис.

Настройки каналов логирования в рамках Laravel framework задают в файле config/logging.php так, как отражено на скриншоте
Мы написали в framework Laravel два канала, сообщения для которых будут храниться в течение 30 дней в папке logs, разбитые по дням. Запись в канал orders в нашем framework будет выглядеть так, как на скриншоте

Данные хранятся в облаке. Это очень важно для систем, которые обрабатывают большой объем данных. Когда место на сервере стало заканчиваться, мы перешли на облачное объектное хранилище данных с поддержкой Amazon S3.

Для облака использовали готовую библиотеку от Amazon — AWS SDK для PHP. Почему именно эта библиотека, ведь она создана не конкретно под фреймворк Ларавел?

Ответ прост: AWS SDK легко встраивается в исходную структуру проекта. Все, что нужно, — это в классе для работы с хранилищем инициализировать клиента, а потом использовать методы API.

Так выглядит инициализация в Laravel
А на этом скриншоте — что представляет собой получение объекта из хранилища в Laravel
Еще один этап — отправка объекта в хранилище. Параметр $localPath здесь для удобства и показывает, в каком виде мы передаем данные в хранилище

Для рассылки можно использовать Mailchimp. Одна из способов зарабатывать на страховках — увеличивать число повторных покупок. Для этого мы научили сервис отправлять напоминания на электронную почту: «у вашего полиса скоро истечет срок действия, вот предлагаем для вас новый».

Для нашего проекта мы решили использовать сервис рассылок Mailchimp. Он удобный, проверенный и с хорошей аналитикой. Например, дает представление, какое количество человек прочли письмо, кто перешел по ссылкам из него. Эта информация помогает поменять параметры рассылки так, чтобы подросла конверсия.

Для подключения рассылок использовали библиотеку spatie/laravel-newsletter. При ее установке в проекте создается файл с настройками рассылки config/newsletter.php. В нем находятся реквизиты подключения к сервису.

В коде получаем клиент для обращений к сервису
Чтобы создать каждую новую кампанию использует следующий код
В ответ функция создания кампании возвращает нам id. Мы его используем при запуске самой кампании

Данные защищены от воровства и копирования. Фреймворк Laravel предлагает решения для безопасности. Cреди них:

  • Пароли клиентов фреймворк кодирует так, что даже программист, создавший сайт, не получает их в открытом виде.
  • Во framework Laravel встроены механизмы аутентификации: например, можно подключить готовую функцию по запоминанию пользователя.
  • Утилита Eloquent ORM, которая позволяет защитить от взломов через формы на сайте.
  • Framework Laravel имеет защиту от межсайтовой подделки запросов. Она подключается парой строчек кода.

Результаты работы: фреймворк помог запустить сервис за 10 месяцев

Мы начали работать над новым проектом в 2019 и запустил его через 10 месяцев. Cервис работает, а мы продолжаем поддерживать его сайт и развивать. Например, планируем запускать мобильное приложение.

Заказчик может использовать обе модели для заработка. С момента запуска сервиса, им можно было свободно пользоваться, поэтому наш заказчик не терял деньги. Все, кто хотел бы покупать страховку через сервис, делал это без каких-либо технических ограничений.

Сервисом удобно пользоваться с любого устройства. Чтобы сделать работу быстрее, мы не стали разрабатывать приложение. Зато добавили адаптивную верстку, поэтому сайт удобно открывать и на компьютере, и на планшете, и на телефоне.

Нет технических препятствий для новых партнеров. Сервис интегрируется с любыми платформами страховщиков, поэтому заказчик подключает компании без сложных доработок и дополнительных затрат.

Сервис работает как маркетплейс для клиентов и рабочее место для агентов. Это удобно посредникам, потому что они могут продавать сами — в этом помогает личный кабинет. В нем есть возможность отслеживать результаты продаж и начислять комиссию. Или помогать свои клиентам оформить полис самим.

10 тыс. личных кабинетов6 тыс. личных кабинетов1,6 полисов
создали пользователисоздали агентыпродается каждый день

Технический блок

  • PHP 7.3
  • Laravel 5.7.29
  • Vue.js 2.6

Языки программирования

  • PHP
  • JS

Библиотеки

PHP:

  • Laravel SMS API
  • AWS SDK для PHP
  • League Flysystem
  • Laravel Newsletter

JS:

  • Vuetify
  • JQuery
  • Bootstrap
  • Axios
  • Bootstrap
  • Lodash

Часто задаваемые вопросы

Что такое Laravel и почему он популярен среди разработчиков?

Laravel является бесплатным и открытым PHP-фреймворком, который предоставляет разработчикам удобные инструменты для создания веб-приложений.

Его популярность среди разработчиков обуславливается аккуратным синтаксисом, простоте в использовании и богатыми функциональными возможностями.

Какие основные возможности дает Laravel для веб-разработки?

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

Какие задачи можно решать с помощью инструментов Laravel?

С помощью Laravel можно решать множество задач, связанных с разработкой веб-приложений. Инструменты Laravel позволяют разработчикам создавать блоги, интернет-магазины, CRM-системы, административные панелей, API и многое другое. С его помощью можно также работать с базами данных.

В чем основные преимущества использования Laravel перед другими PHP-фреймворками?

Основные преимущества Laravel включают в себя чистый синтаксис, обширную документацию, богатую экосистему пакетов (Composer), интеграцию с инструментами разработки (Artisan), встроенную поддержку аутентификации и авторизации. У Laravel также есть активное сообщество разработчиков.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.

Перезвонить вам, чтобы ответить на вопросы?

Когда с вами связаться?

Связаться по телефону:+7 499 321-59-32

Нажимая на кнопку, я принимаю условия политики и пользовательского соглашения

Фото эксперта
Дмитрий

Проектный менеджер

Получите ответ на ваш вопрос в любимом мессенджере

Выберите удобный мессенджер и начните диалог прямо сейчас

Telegram WhatsApp

Рассчитать стоимость проекта

Расскажите о вашем проекте, чтобы мы могли проконсультировать вас.

Напишите ваше имя
Укажите ваш email

Выберите удобный для вас способ связи

Мы сразу получим ваш запрос и поможем в решении проблемы

Написать в Telegram

Написать в WhatsApp

Позвонить нам