Миграция PHP-кода продукта с устаревшего фреймворка на новый

Перенос кода на фреймворк Laravel для сервиса автоматизации служб такси Taxi-agent

Ситуация

Заказчик - компания Восточный экспресс (г. Москва), владеющая программой Taxi-agent. Клиент пришел к нам со своим готовым продуктом, код которого был написан на устаревшем фреймворке Zend. Поддерживать и развивать проект, работающий на устаревших технологиях, сложно. Это тормозило развитие продукта, терялись клиенты.

Описание продукта:

Продукт - сервисное ИТ-решение (SaaS) для автоматизации работы таксопарков и служб такси. Оно позволяет агрегировать заказы из разных источников в единую базу. Сервис интегрирован с GetTaxi, Яндекс Такси, Ситимобил, UP&UP.

Первая версия продукта была разработана на PHP-фреймворке Zend, он вышел 15 лет назад. Мы решили перенести продукт на современный фреймворк Laravel. Laravel позволяет быстро и удобно создавать панели администратора, формировать интерфейс пользователя. Его код легко читается с первого взгляда.

Заказчиком были поставлены следующие задачи: проанализировать текущий код проекта, переписать его с сохранением логики работы продукта и обновить связи между базами данных. Текущие базы данных не работали в полном объеме.

Перейти на сайт сервиса
Решение
  • Проект делали по модели аутстафинга. Наш PHP-разработчик в режиме full-time напрямую коммуницировал с клиентским представителем, выполнял его задачи и вносил правки.
  • Это позволило добиться расширения и усиления проектной команды заказчика полностью вовлеченным в процесс программистом, глубокого погружения в отрасль клиента и оперативного решения всех возникающих задач.
Технологии
  • Laravel
  • Cordova
  • MySQL
  • Blade
  • Eloquent ORM
Результат
  • Обеспечили безопасность решения. Eloquent ORM защищает сервис от вредоносных запросов, проверяя их параметры. Экранирование запрещенных html-тегов устраняет возможность размещения в сервисе опасных скриптов.
  • Увеличили скорость работы на 35%. Встроенные в Laravel базы данных REDIS, Memcache и APC хранят информацию в связке ключ-значение, данные располагаются в оперативной памяти сервера, поэтому запросы обрабатывается быстрее. Массовое кэширование объектов также ускоряет загрузку.
  • Реализовали цепочку вывода средств Cordova - мобильный сервер - Laravel - микросервис оплат. Водитель через приложение Cordova запрашивает вывод денежных средств. Запрос перенаправляется на мобильный сервер. Сервер оставляет запись в базе. Затем подключается Laravel. Если подключен автовывод - запрос перенаправляется сразу в микросервис оплат. Если автовывод не подключен - запрос вначале модерируется менеджером и, после одобрения, переходит в оплату.
  • Усовершенствовали агрегацию заказов из разных источников. Службы такси передают информацию о выполненных заказах и их оплатах в сервис. На основании этих данных рассчитываются платежи с учетом комиссий. Интегрированная с сервисом программа “Тарификатор” переводит окончательную стоимость поездки для водителя на его внутренний счет, а комиссию с этой поездки - на счет службы. Водитель может выводить средства на банковскую карту, QIWI-кошелек или оплату топлива.
  • Перенесли проект за 11 месяцев. Мы полностью переписали устаревший код, оптимизировали его и улучшили. Поскольку перенос был без повторного использования кода (на чистый фреймворк), на некоторых страницах полностью переделали функционал. Оптимизировали его и улучшили интерфейс.

В данный момент ведутся работы по улучшению юзабилити: проводим оптимизацию UI & UX.