Проекты

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

Почему выбрали 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 и в чем его плюсы.

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

В разработке мы решили применить популярный PHP-фреймворк Symfony. Он выстроен на архитектуре MVC и часто используется для проектов open source. Это проекты с открытым кодом, который доступен для общего пользования.

Symfony framework — распространенная альтернатива Laravel PHP-framework для создания веб-приложений (used for development of web applications). Рассказываем, какие плюсы фреймворк Symfony дает для работы сервиса.

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

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

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

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

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

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

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

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

скрипт4
Пример файла конфигурации в формате 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 database
  • Apache Kafka
  • RabbitMQ
  • Couchbase
  • SQLite
  • ElasticSearch

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

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

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

Что такое Symfony и какова его основная цель?

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

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

Symfony может взаимодействовать с другими языками программирования: Java и JavaScript, HTML, CSS, Python и многими другими. Это помогает, например, при интеграции приложений.

Какие преимущества предоставляет Symfony для разработчиков?

Список преимуществ Symfony для developers:

  • гибкость архитектуры;
  • модульность компонентов;
  • высокая производительность;
  • обширная экосистема инструментов и библиотек.

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

Примеры задач, с которыми справится Symfony:

  • создание RESTful API;
  • разработка CRUD-application;
  • создание веб-сайтов и программ;
  • работа с базами данных.

Компоненты Symfony используют многие системы управления контентом: WordPress, Dupal, Shopify и другие. Также с помощью фреймворка можно сделать собственную CMS.

Какие компоненты входят в Symfony и для чего они используются?

В Symfony есть большое количество компонентов. Например:

  • Component HttpFoundation — интерфейс для работы с HTTP-запросами и ответами;
  • Form component — инструменты для создания и обработки веб-форм;
  • Controller component — прием HTTP-запросов от клиента, обработку запросов и возврат конкретных ответов.
  • Validator component — валидация данных и управление правилами;
  • Security component — инструменты для аутентификации, авторизации и безопасности;
  • Routing — определяет маршруты URL и их обработку.

Symfony components позволяют разработчикам эффективно управлять различными аспектами приложений.

Какова роль Symfony в разработке веб-приложений?

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

Каким образом Symfony поддерживает тестирование и обеспечение качества кода?

В Symfony доступны встроенные средства для тестирования, например, инструменты для написания и запуска автоматических тестов. Фреймворк поддерживает механизмы проверки кода на соответствие стандартам и обеспечение безопасности приложений.

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

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

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

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

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

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

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

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

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

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

Telegram WhatsApp

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

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

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

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

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

Написать в Telegram

Написать в WhatsApp

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