Symfony — фреймворк на PHP
Symfony — php‑фреймворк, на базе которого можно разрабатывать сложные веб‑приложения. У фреймворка Symfony весьма мощная функциональность, продуманная архитектура, а также развитое сообщество.
Symfony — это высокопроизводительный фреймворк, написанный на PHP. Фреймворк основан на паттерне Model-View-Controller и в его архитектуре очень активно используются другие паттерны объектно-ориентированного программирования.
Symfony 2 работает с версией PHP не ниже 5.3.2. Имеет поддержку множества баз данных (MySQL, MariaDB, PostgreSQL, SQLite, подходят и другие PDO‑совместимые СУБД). Информация о реляционной базе данных в проекте должна быть связана с объектной моделью при помощи ORM‑инструмента. Для этого в базовой поставке Symfony используется ORM Doctrine.
Если выбор пал на Symfony, а не CMS, стоит учитывать, что скорость создания типовых решений на нём будет ниже, чем при использовании готовых модулей CMS. Да, написанные на фреймворке модули будут работать быстрее, будут полностью соответствовать бизнес‑задачам, но всё же их разработка будет стоить дороже.
Если сравнивать Symfony с другими php‑фреймворками, то картина следующая:
- Symfony и Yii (или Laravel) — в этом сравнении Symfony выглядит несколько «академичным» фреймворком, местами даже заумным. Однако, если рассматривать разработку сложного проекта, то выбор в пользу Symfony будет обоснованным — «академичность» окупается, если кодовая база стремительно растёт.
- Symfony и Laminas (бывший Zend Framework) — Symfony, в сравнении с Laminas, выглядит более привлекательным фреймворком, во многом за счёт более красивой архитектуры. Оба фреймворка достаточно мощные и гибкие, но Symfony субъективно выглядит более понятным и «правильным» с точки зрения проектирования.
Фреймворк бесплатен и распространяется под свободной открытой лицензией. Восьмая версия популярной системы управления сайтами Drupal написана с использованием компонентов Symfony 2.
Тематические статьи
Yii — это популярный фреймворк для PHP‑разработки, основанный на парадигме MVC. Основное преимущество — очень высокая скорость работы и, как следствие, производительность.
Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов. Фреймворк — это сочетание готовых программных компонентов с методологией их использования, облегчающее разработку программного продукта. Благодаря использованию фреймворков достигается не только высокая скорость разработки, но и высокая производительность, безопасность и надёжность решений.
При выборе конкретной платформы для разработки часто возникают сложности. Бывает непросто принять взвешенное решение, и в этом случае будет полезен следующий алгоритм выбора.
- При возможности найти готовые решения или продукты — используйте их. В большинстве случаев оптимальная стратегия выбора: «чем проще — тем лучше».
- Если у вас есть команда разработчиков, то прислушайтесь к их мнению. Важны как возможности самой платформы, так и наличие у команды опыта работы именно с этим технологическим стеком.
- Заранее оцените «заточенность» выбранной платформы под ваши задачи. Не стоит на 100% доверять маркетинговым материалам вендора платформы.
Rails — это прежде всего среда разработки, которая великолепно подходит для создания любого типа веб‑приложений: систем для управления веб‑сайтами и платформ для ведения электронной торговли, программ для организации совместной работы и для веб‑сервисов для коммуникации, для CRM и ERP‑систем, статистических и аналитических систем.
Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб‑приложений, написанный на языке программирования Python.
Разработку сложных веб‑проектов с использованием фреймворков на текущий момент экономически целесообразно вести на одном из следующих языков: PHP, Ruby, Python, Java и C# (платформа .NET). Каждый из языков имеет далеко не по одному фреймворку, написанному на нём. В этой статье мы не будем рассматривать преимущества языка программирования Ruby и фреймворка Ruby on Rails с технической стороны, а рассмотрим факторы, влияющие на выбор этой платформы с точки зрения бизнеса.
От выбора платформы для разработки зависит как сама возможность реализации необходимой функциональности, так и трудоёмкость дальнейшего развития веб‑проекта. Для создания сайта, как правило, выбирается одна из платформ: CMS, фреймворк или SaaS‑решение.
SaaS‑платформы еще часто называют «конструкторами сайтов». Основное преимущество этого варианта — весьма хороший уровень качества за очень небольшие деньги. Но кастомизация SaaS‑решений очень ограничена.
Система управления сайтом (CMS) служит для разработки стандартных разновидностей сайтов. Многие небольшие и средние сайты строятся именно на CMS‑платформах, так как это наиболее целесообразный с экономической точки зрения подход.
Фреймворк — это программный продукт, который так же, как и CMS, служит основой для сайта, но фреймворк — это более низкоуровневое решение, обладающее большей гибкостью и производительностью в сравнении с CMS. Этот вид платформ используют почти все крупные веб‑проекты, а также подавляющее большинство веб‑приложений и веб‑сервисов.