Фреймворк Symfony: что это и для чего используется

Почему выбрали для системы учета Posiflora

Фреймворк Symfony: что это и для чего используется

Коротко

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

    Symfony — фреймворк PHP

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

    Серверная часть системы учета для цветочного бизнеса Posiflora

  • 03
    Почему выбрали Symphony

    Cимфони фреймворк создает новые компоненты быстро и не утяжеляет систему

    Помогает использовать один и тот же код и допускать меньше ошибок

    Организует среду вокруг кодовой базы, с которой удобно работать

  • 04
    Результаты

    Запустили приложение на Symfony framework за 9 месяцев

    1200 пользователей на июнь 2021

    Поддерживаем почти все типы устройств

    Приложение на Symfony framework совместимо со всеми популярными онлайн-кассами: Эвотор, АТОЛ, Штрих-М

    Для разработки и поддержки приложения на Симфони PHP нужно только 2 разработчика

Приложение Posiflora оформляет заказы, принимает оплату и сохраняет данные о клиентах

Posiflora — система учета складских остатков и развития продаж для цветочного бизнеса. Ее используют интернет‑магазины с доставкой, супермаркеты и маленькие магазины. На июнь 2021 года Posiflora пользуются 1200 клиентов. OrbitSoft разработал решение с нуля.

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

  • вносить телефон, имя и адрес клиента, оформлять заказы;
  • принимать оплату наличным и безналичным платежом;
  • распечатывать кассовые чеки;
  • сохранять информацию о заказах в базе данных;
  • следить за остатками на складе;
  • списывать цветы, если они испорчены или завяли;
  • распределять смены между сотрудниками;
  • анализировать активность клиентов;

Чтобы бизнесу было удобно работать с Posiflora, система работает на любых устройствах: компьютером пользуются руководители, планшетом — менеджеры на точках, телефоном — флористы для оформления заказа и курьеры для доставки.

Что дает использование Symfony

В разработке мы решили применить популярный PHP-фреймворк Symfony. Он выстроен на архитектуре MVC и часто используется для проектов open source. Это распространенная альтернатива Laravel PHP-framework для создания веб-приложений (used for development of web applications). Рассказываем, какие плюсы фреймворк Symfony дает для работы сервиса.

Создает новые компоненты быстро и не утяжеляет систему. Благодаря Symfony framework разработчику не нужно писать много кода, чтобы подключить новые функции к системе. Symfony не копирует сам себя при создании новых components, а работает как единый фреймворк благодаря минимально функциональному ядру.

Пример установки и настройки дополнительного компонента для приложения на Symfony framework PHP
После установки зависимости команды следующей секции файла composer. json будут автоматически выполнены. Например, cache: clear — выполнить очистку файлового кэша приложения

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

В Symfony оригинальна система множественного использования кода — The Bundle System to create reusable code. Это готовая библиотека с рецептом интеграции в Dependency Injection контейнер приложения и описанием необходимых параметров конфигурации. Мы часто используем бандлы в работе с Symfony framework.

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

Пример бандла в приложении на Симфони фреймворк PHP

Организует среду вокруг кодовой базы, с которой удобно работать. Чтобы программисту было удобно работать, фреймворк создает специальную среду, где сохраняет файлы с паролями, адресами в файлах разных форматов.

Symfony поддерживает любые форматы файлов: как нативные PHP-файлы, так и XML, INI, YAML. В Posiflora мы используем формат YAML: он легко читается и органично описывает необходимые структуры параметров. Фреймворк по умолчанию производит кеширование результатов парсинга файла конфигурации YAML, из-за этого работа framework не влияет на производительность приложения.

Пример файла конфигурации в формате YAML на Symfony framework PHP

Результаты работы с Symfony: запустили приложение за 9 месяцев


Приложение сразу работало на разных устройствах. Posiflora на Симфони поддерживает все версии iPad, версии iPhone, начиная с шестой, и более 10 тысяч моделей Android-устройств.

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

При необходимости Qt позволит быстро разработать приложение для новой платформы.

Все данные о заказах в Cимфони фреймворк сохраняются, даже если флористы заносили их оффлайн. Взаимодействие с back-end происходит по сети с использованием протокола JSON API. В серверной части приложения на Symfony принимают и обслуживают запросы от клиентов, синхронно взаимодействуют между собой по протоколу JSON API или же асинхронно — через очереди сообщений RabbitMQ.

Приложение на Симфони работает быстро. При нажатии на любую кнопку в нем обновляется только часть страницы, а не перезагружается вся страница как на обычных сайтах. Это возможно благодаря тому, что клиент-серверная парадигма в Symfony фреймворк позволяет разграничивать серверную часть и интерфейсную.

Приложение на Symfony framework PHP адаптируется под нужды заказчика. Если у клиента появляется новая задача для системы, мы стараемся ее решить. Например, мы внедрили ранжирование поставок по европейским маркировкам, добавили поддержку штрихкодов, возможность подключать информацию из разных рекламных кабинетов. Всего за два года работы в бэклоге скопилось более 2 тысяч решенных задач. Мы решили их с помощью Qt или благодаря возможности внедрять нативный код.

За два года работы мы выпустили 87 новых версий приложения на Symfony framework. Оно сразу автоматически обновлялось на всех устройствах, без дополнительного участия разработчика.

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

Симфони экономит деньги клиента на обслуживание. Фреймворк сокращает ресурсы компании на разработку: для написания обновлений и обслуживания приложения нам хватает двух программистов. Платить за использование framework и техподдержку не нужно.

1,2 тыс. 350 40 тыс.
пользователейзапросов обрабатывает система каждую секунду продаж в сутки

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

Фреймворки:

  • Back-End: Symfony
  • Web Front-End: Angular
  • Mobile/Desktop App: Qt

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

  • Back-End: PHP 7.3—7.4
  • Web Front-End: TypeScript
  • Mobile/Desktop App: C++

Библиотеки:

  • neomerx\json-api
  • Doctrine ORM
  • Enqueue
  • League\Flysystem
  • Monolog
  • Swift Maile
  • Twig

Базы данных:

  • MySQL
  • Redis
  • Apache Kafka
  • RabbitMQ
  • Couchbase
  • SQLite
  • ElasticSearch

Платформы и стороннее ПО:

  • Docker, Docker Compose, Docker Swarm
  • HashiCorp Consul
  • HashiCorp Vault
  • Kafka Connect
  • Graylog
  • Grafana, Graphite, StatsD

В чем бы вы ни нуждались, мы можем помочь!

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

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

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