Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов. Фреймворк — это сочетание готовых программных компонентов с методологией их использования, облегчающее разработку программного продукта. Благодаря использованию фреймворков достигается не только высокая скорость разработки, но и большая производительность, безопасность и надёжность решений.
Yii — фреймворк для веб‑разработки на PHP
Yii — это популярный фреймворк для php‑разработки, основанный на парадигме MVC. Основное преимущество — очень высокая скорость работы и, как следствие, производительность.
Фреймворк активно развивается сообществом. Yii не выглядит «монстром» по сравнению с фреймворками Symfony и Zend Framework, кодовая база которых весьма объёмна. Фреймворк Yii достаточно прост в освоении и в использовании, что способствует быстрой разработке на нём проектов. Однако при выборе в качестве платформы для создания веб‑проекта этого фреймворка стоит всё равно учитывать тот факт, что скорость разработки на нём типовых решений всё равно будет ниже, чем разработка на CMS. Как и все фреймворки, Yii «заточен» под разработку технически сложных веб‑проектов: бизнес‑приложений, веб‑сервисов, а также сайтов со сложной бизнес‑логикой и требовательных к быстродействию.
Основные преимущества и возможности фреймворка Yii:
- Обеспечивает высокую производительность относительно других php‑фреймворков
- Основан на парадигме MVC (Модель-Представление-Контроллер)
- Есть интерфейсы DAO и ActiveRecord для работы с базами данных (используется PDO)
- Поддерживает интернационализацию
- Позволяет кешировать как страницы целиком, так и отдельные фрагменты
- Осуществляет перехват и обработка ошибок
- Имеет функциональность работы с формами, обеспечивает их построение и валидацию
- Реализованы аутентификация и авторизация
- Удобен для реализации AJAX‑интерфейсов, интегрируется с jQuery
- В фреймворк встроены генераторы базового PHP‑кода для CRUD‑операций (скаффолдинг)
- Поддерживает темы оформления
- Имеет возможность подключения сторонних библиотек
- Работает с миграциями баз данных (генерация, применение и откат)
- Позволяет осуществлять автоматическое тестирование и вести разработку в стиле TDD
- Поддерживает стиль REST
До перехода на Ruby on Rails мы достаточно активно использовали Yii для разработки проектов. Этот фреймворк хорошо зарекомендовал себя в проектах с достаточно сложной бизнес‑логикой.
Тематические статьи
При выборе конкретной платформы для разработки часто возникают сложности. Бывает непросто принять взвешенное решение, в этом случае будет полезен следующий алгоритм выбора.
- При возможности найти готовые решения или продукты — используйте их. В большинстве случаев, оптимальная стратегия выбора: «чем проще — тем лучше».
- Если у вас есть команда разработчиков, то прислушайтесь к их мнению. Важны как возможности самой платформы, так и наличие у команды опыта работы именно с этим технологическим стеком.
- Заранее оцените «заточенность» выбранной платформы под ваши задачи. Не стоит на 100% доверять маркетинговым материалам вендора платформы.
Symfony — php‑фреймворк, на базе которого можно разрабатывать сложные веб‑приложения. У фреймворка Symfony весьма мощная функциональность, продуманная архитектура, а также развитое сообщество.
Rails — это прежде всего среда разработки, которая великолепно подходит для создания любого типа веб‑приложений: систем для управления веб‑сайтами и платформ для ведения электронной торговли, программ для организации совместной работы и для веб‑сервисов для осуществления коммуникации, для учетных и ERP‑систем, статистических и аналитических систем.
Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб‑приложений, написанный на языке программирования Python.
От выбора платформы для разработки зависит как сама по себе реализуемость необходимых функциональных возможностей, так и возможности дальнейшего развития веб‑проекта. Для создания сайта, как правило, выбирается одна из платформ: CMS, фреймворк или SaaS‑решение.
SaaS‑платформы еще часто называют «конструкторами сайтов». Основное преимущество этого варианта — весьма хороший уровень качества за очень небольшие деньги. Но кастомизация SaaS‑решений очень ограничена.
Система управления сайтом (CMS) служит для разработки стандартных разновидностей сайтов. Много небольших и средних сайтов строится именно на CMS‑платформах, так как это наиболее целесообразный с экономической точки зрения подход.
Фреймворк — это программный продукт, который также как и CMS служит основой для сайта, но фреймворк — это более низкоуровневое решение, обладающее большей гибкостью и производительностью в сравнении с CMS. Этот вид платформ используют почти все крупные веб‑проекты, а также подавляющее большинство веб‑приложений и веб‑сервисов.