Первая версия продукта была разработана на PHP-фреймворке Zend, он вышел 19 лет назад. Мы решили перенести продукт на современный фреймворк Laravel. Laravel позволяет быстро и удобно создавать панели администратора, формировать интерфейс пользователя. Его код легко читается с первого взгляда. Для ускорения работы были задействовали встроенные в Laravel высокопроизводительные хранилища - Redis, Memcached и APC. Они используют модель "ключ-значение" и размещают данные в оперативной памяти, что значительно повышает скорость обработки запросов. Дополнительное массовое кэширование объектов позволило уменьшить время загрузки интерфейсов и сократить нагрузку на сервер.
Наш PHP-разработчик в режиме full-time напрямую коммуницировал с клиентским представителем, выполнял его задачи и вносил правки. Это позволило вовлечь и глубоко погрузить программиста в процесс работы, добиться расширения и усиления проектной команды Заказчика и оперативно решать все возникающие задачи.
Разработчик полностью переписал устаревший код и оптимизировал его. Поскольку перенос был на чистый фреймворк, на некоторых страницах полностью переделали функционал и улучшили интерфейс. Был оптимизирован процесс получения и обработки информации от служб такси. На основании этих данных рассчитываются платежи с учетом комиссий. Интегрированная с сервисом программа “Тарификатор” переводит окончательную стоимость поездки для водителя на его внутренний счет, а комиссию с этой поездки - на счет службы. Водитель может выводить средства на банковскую карту, QIWI-кошелек или оплату топлива.
Также наш программист усилил защиту сервиса от вредоносных запросов. Использование Eloquent ORM предотвращает выполнение потенциально опасных операций, контролируя корректность параметров. Дополнительное экранирование запрещённых HTML-тегов исключает возможность внедрения скриптов.
Кроме того, был реализован полный цикл обработки запросов на вывод денежных средств. Водитель через приложение Cordova запрашивает вывод денежных средств. Запрос перенаправляется на мобильный сервер. Сервер оставляет запись в базе. Затем подключается Laravel. Если подключен автовывод, то запрос перенаправляется сразу в микросервис оплат. Если автовывод не подключен, запрос вначале модерируется менеджером и после одобрения переходит в оплату.