PHP фреймворки: их преимущества и недостатки, приоритетные сферы использования.

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

Насколько вообще актуален вопрос об использовании PHP фреймворков на данный момент?

Такие фреймворки используются для облегчения разработки на языке программирования PHP, у которого за плечами более двадцати лет истории развития. Переломным моментом на этом долгом пути стал 2015 г., когда была выпущена версия PHP 7.0.0 . В этой версии акцент был сделан на увеличении производительности и снижении потребления памяти.

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

Среди крупнейших сайтов, которые используют PHP – Facebook , Wikipedia , , etc.

Одним из показателей популярности языков программирования является индекс TIOBE : он составляется исходя из данных поисковых систем на основании оценки количества строк, написанных на каждом языке программирования.

Согласно этому рейтингу, по состоянию на июнь 2017г. язык PHP занимает 8-ую позицию, в то время как в 2016 г. он был на 6-ой позиции, а в 2007 г. – на 4-ой. Эти показатели и являются прямым подтверждением стабильности лидирующей позиции языка PHP среди самых популярных языков программирования.

На фоне такой популярности язык развивается и продолжает обрастать новыми инструментами и библиотеками. Следовательно, и вопрос о том, какие именно PHP фреймворки рекомендуется использовать в 2017г., остается актуальным.

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

Какими критериями пользовались мы, выбирая лучшие PHP фреймворки для веб-разработки в 2017г.?

  • Сообщество

Всегда важно понимать, кто стоит за созданием тех или иных инструментов: команда должна быть профессиональной и мотивированной на развитие и поддержку того продукта, который они предлагают.

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

  • Специфика использования

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

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

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

  • Функционал

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

К выбору фреймворков в каждом конкретном случае нужно подходить с позиции разумности и рациональности. Именно этим подходом руководствуется в своей работе, поэтому в этой статье мы не будем пытаться сравнить несравнимое и составлять смешанный “хит-парад” фреймворков, предназначенных для различных целей.

Мы выделим четырех лучших представителей в четырех номинациях – в зависимости от указанных критериев.

SYMFONY

Лучший фреймворк с точки зрения универсальности и стабильности.

Создатели Symfony – SensioLabs – вложили и продолжают вкладывать немало сил и средств в создание вокруг фреймворка полноценного сообщества и обеспечение его стабильного развития .

Результаты говорят сами за себя:

  • масштабное сообщество;
  • подробная, четко структурированная документация;
  • большой объем информации от разработчиков на github и stackoverflow ;
  • проведение конференций различных уровней;
  • предложение создателями таких услуг, как обучение, консалтинг.

Если говорить о том, насколько Symfony удобен в применении на практике, стоит отметить, что у него достаточно высокий порог вхождения. Чтобы начать работу с этим фреймворком, недостаточно просто уметь писать код на PHP – потребуется также умение работать с паттернами (англ. patterns ).

При этом процесс обучения в случае с Symfony существенно облегчается за счет наличия хорошо составленной документации и развитого сообщества.

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

Такая гибкость возможна благодаря модульности фреймворка. Фреймворк Symfony представляет собой набор бандлов (аналогов плагинов) – автономных элементов, которые можно повторно использовать и которые можно безболезненно взаимозаменять благодаря использованию процесса внедрения зависимости (англ. dependency injection ). При помощи бандлов можно легко адаптировать приложение под собственные запросы. При этом есть возможность как использовать уже имеющиеся модули, так и разрабатывать собственные.

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

С другой стороны, используя Symfony, можно создавать самые разнообразные приложения:

  • за счет хорошей расширяемости и модульности Symfony удобно использовать для крупных проектов на уровне предприятия ;
  • Symfony можно использовать для небольших проектов, если:
  • перед разработчиками стоят типовые задачи;
  • планируется расширение приложения в будущем;
  • Symfony идеально подходит для разработки стартапов – когда важен быстрый запуск и возможность быстро вносить изменения.

LARAVEL

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

Laravel относительно молод – первая версия выпущена в 2011г., но он уже успел завоевать симпатии пользователей и собрать вокруг себя достаточно большое сообщество разработчиков .

Среди плюсов фреймворка можно назвать:

  • подробную и простую документацию;
  • наличие доступных и понятных обучающих программ;
  • регулярные обновления;
  • быстрое исправление обнаруженных ошибок.

В Laravel активно используются компоненты Symfony : частично они переписаны или адаптированы, частично применяется только идея или паттерн.

От других фреймворков Laravel отличается тем, что в нем задействованы новейшие свойства PHP .

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

ZEND

Победитель в номинации самый крупномасштабный фреймворк.

Одно из основных преимуществ этого интерфейса: Zend создан компанией Zend Technologies Ltd . , которая, в свою очередь, является компанией-разработчиком ядра языка PHP.

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

А стабильность особенно важна именно в случае с Zend, так как он предназначен для создания высокопроизводительных приложений корпоративного уровня . Разработка таких приложений предполагает отсутствие жестких ограничений по бюджету и по срокам и привлечение большого количества разработчиков. То есть подобное приложение требует вложения существенных средств, и, соответственно, клиент должен быть абсолютно уверен, что оно впоследствии будет работать стабильно и в течение длительного времени.

Разрабатываемые приложения будут многофункциональными и сложными, поэтому порог вхождения для Zend будет выше, чем у Laravel и Symfony.

В качестве особенностей этого фреймворка можно назвать:

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

В целом, Zend создан для разработки конкретного типа приложений, а именно больших приложений корпоративного уровня (e nterprise ) и нужно сказать, что он успешно справляется со своей задачей.

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

CODEIGNITER

Самый простой и легкий фреймворк

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

Но ведь далеко не всегда есть смысл в привлечении высококвалифированных специалистов, особенно если речь идет о небольших проектах.

В таком случае поможет лидер в нашей следующей категории – лучший фреймворк для начинающих PHP-разработчиков – Codeigniter.

Это самый минималистичный и легкий фреймворк, который можно смело использовать для быстрой разработки приложений – достаточно загрузить файлы, и все готово.

В Codeigniter используется MVC паттерн, и при этом его реализация сама по себе очень прозрачна и очевидна: предусмотрено явное разделение на модели, представления и контроллеры.

Возвращаясь к фреймворкам Symfony, Laravel и Zend следует вспомнить, что они также построены на базе этого паттерна. А это означает, что, работая с Codeigniter, разработчик, не просто выполняет поставленную задачу (разрабатывает продукт), но и приобретает знания, вырабатывает навыки и осваивает образ мысли, что облегчит работу с любым другим, более сложным фреймворком.

С точки зрения практического применения Codeigniter оптимально подходит для работы над небольшими проектами и для создания “целевых ” страниц (англ. landing pages ).

Хотите задать вопрос об одном из фреймворков?

И в конце статьи вас ждет традиционный бонус от компании – мы всегда стараемся дать своим клиентам больше, чем обещали.

Drupal 8 – самый интересный из молодых фреймворков .

Мы говорим именно о версии Drupal 8, так как до ее выхода философия фреймворка была иной, и этот переход вызвал разделение сообщества на два направления: приверженцев предыдущей концепции и последователей новой идеи.

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

С другой стороны, Drupal 8 обладает определенными преимуществами:

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

Базовый функционал Drupal 8 включает в себя большое количество готовых плагинов и систем. Поэтому такой фреймворк скорее подходит для приложений, которые не предполагают высокую степень кастомизации.

Фреймворк может стать особенно полезным в секторе блогов и новостных приложений , предполагающих большой объем контента различного типа.

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

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

Поэтому, если вы:

  • только начинаете знакомство с PHP, и вам нужно разработать сайт-визитку – выбирайте Codeigniter ;
  • имеете определенный опыт работы с PHP и у вас в руках перспективная идея стартапа – выберите Symfony ;
  • представляете крупный банк и хотите создать надежное и стабильное приложение корпоративного уровня – правильным выбором будет Zend ;
  • ищите подходящий вариант для бэкенда мобильного приложения – советуем обратить внимание на Laravel ;
  • разрабатываете новостное приложение или блог – выбирайте Drupal 8 .

Каким бы ни был ваш выбор, компания Umbrella всегда готова оказать поддержку и предложить помощь! прямо сейчас!

1 year ago | 15.6K

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

Фреймворк: что это?

Рассмотрим слово "фреймворк ", которое является действительно новым неологизмом, не так давно появившимся в нашем языке. Слово начали использовать примерно в первой половине XXI века. Если рассматривать перевод слова с английского - это "конструкция" или "структура".

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

Если сравнивать динамическую библиотеку (DLL), которая отличается весьма ограниченным функционалом, и фреймворк , считающийся основой программ - можно выделить существенное преимущество фреймворков. Именно фреймворк является связующим звеном, которое объединяет все используемые программные компоненты. Также внутри фреймворка зачастую есть необходимые тематические библиотеки.

Классификация фреймворков:

  • Фреймворки приложений;
  • Фреймворки программных моделей;
  • Фреймворки концептуальных моделей.

Наша статья рассмотрит фреймворки, используем ые для разработки современных веб-проектов и принадлежит второму пункту в классификации.

Сравниваем CMS, чистый код и фреймворк

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

  1. Можно написать требуемый исходный код с нуля. Главным преимуществом этого варианта, явл яется его вариативность - практически никаких ограничений, можно реализовать любой задуманный функционал, потребуются лишь определенные умения. Главным минусом можно назвать трудоемкость процесса, временные затраты. Также придется приложить очень много усилий для тщательного тестирования полученного продукта - придется найти все его изъяны, чтобы создать идеальный веб-проект.
  2. Использование фреймворков. Существуют определенные ограничения, если проводить параллели с предыдущим способом. Существует основа, в которую нужно добавить определенное количество требуемых компонентов. Данный вариант является рентабельным только для тех, кто хоть немного разбирается в программировании - без определенного количества знаний выполнить поставленную задачу правильно практически невозможно. Для людей, которые не могут воспользоваться представленными способами, есть альтернативный вариант.
  3. Использование готовой CMS. Данный вариант является идеальным для людей, которые мало понимают в сегменте веб-разработки. Вы сможете оперативно создать сайт, соответствующий вашим требованиям. Есть возможность вносить необходимые коррективы через административную панель. Но данный подход не пользуется особой популярностью - главным минусом является огромное количество ограничений.

Исходя из сравнительных характеристик, можно понять, что именно фреймворк - "золотая середина" между написанием сложного кода и применением ограниченной по функционалу CMS. Вы получаете уже готовый каркас для своего проекта, при этом не теряя гибкости в плане функционала. Фреймворки разделяют по принадлежности к языку программирования, к которому они относятся.



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

HTML/CSS-фреймворки: их главные особенности

Bootstrap - этот фреймворк является невероятно популярным и востребованным, его представили еще в начале 2011 года. Адаптивность (адаптивная верстка) - его главное преимущество. Bootstrap позволяет создавать проекты с невероятно отзывчивым, стильным дизайном - проект будет автоматически подстраиваться, учитывая размер экрана компьютера или мобильного устройства пользователя, просматривающего сайт. К преимуществам относится: большое количество стилей, шаблонов, постраничный дизайн - это существенно облегчает создание сайта.


Bootstrap стал столь популярным из-за огромного количества достоинств, в нем практически отсутствуют недостатки. Это не только HTML/CSS-фреймворк, в Bootstrap также включены плагины и готовые стили JS/Jquery. часто является одним из обязательных требований работодателей.
Официальная страница getbootstrap.com


Semantic UI - используется для создания переносимых интерфейсов. Данный фреймворк можно назвать достаточно молодым, однако стоит отметить его постоянное развитие. В нем можно найти огромное количество кнопок и других элементов, необходимых для работы — изображения, иконки, надписи.
Официальная страница semantic-ui.com

Foundation - данный фреймворк является одним из популярных в сегменте front-end-фреймворков. Последние версии отличаются улучшенным функционалом для современных мобильных устройств. Благодаря семантическому подходу, есть возможность использования SCSS, написания более чистого кода в HTML. Данный фреймворк является идеальным для ситуации, когда нужно быстрое прототипирование.
Официальная страница foundation.zurb.com

Pure by Yahoo! - в данном фреймворке есть несколько небольших CSS-модулей, которые хорошо подойдут для любого современного проекта. Название фреймворка, характеризует его основную особенность - ничего лишнего, только необходимый, ничем не утяжеленный программный каркас, который прекрасно подойдет для создания сайта.
Официальная страница purecss.io

Uikit - фреймворк отличается модульной, легкой структурой. Есть несколько особенностей, которые позволяют ему выделяться на фоне современных фреймворков. Это markdown - возможность предварительно просмотреть страницу сайта в режиме реального времени. Также можно отметить синтаксическую подсветку для HTML.
Официальная страница getuikit.com


PHP-фреймворки: основные особенности

Yii - достаточно "возрастной" фреймворк, который продолжает обновляться в наши дни. Отличается удобным функционалом - кэширование, высокая производительность, полная обработка ошибок, возможность переноса (миграции) существующих баз данных, использование jQuery и другое. Фреймворк Yii отличается своей простотой, можно быстро освоить его основы, нет никаких сложностей в работе и использовании основного функционала. Данный PHP-фреймворк часто советуют людям, которые делают первые шаги в понимании PHP-программирования.
Официальная страница yiiframework.com

CodeIgniter - еще один "возрастной" фреймворк, появившийся в начале 2006 года. Именно тогда состоялся его публичный релиз. Среди основных преимуществ этого фреймворка:
- Хорошая документация;
- Небольшой вес и быстрая установка;
- Простота использования.
Многие используют - его простота действительно считается наиболее значимым преимуществом. Постоянно появляются новые версии, каждая из которых отличается большим количеством нововведений, исправленных багов.
Официальная страница codeigniter.com

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

Laravel - частый лидер разнообразных опросов и рейтингов, посвященных php-фреймворкам. Проект является действительно многообещающим, получил признание достаточно опытных специалистов. Фреймворк просто освоить, является идеальным вариантом для небольших, а также средних по сложности проектов. Подойдет для быстрого, удобного написания требуемого кода.
Официальная страница laravel.com

Phalcon PHP - отличается открытым кодом (языки программирования C, C++, PHP), поддержкой практически всех современных ОС. Производительность этого фреймворка находится на высоком уровне - это подтверждено множеством специализированных тестирований, и, как следствие, его популярностью. Есть возможность использования на собственном сервере.
Официальная страница phalconphp.com


Python-фреймворки: главные особенности

Flask - отличается минимальным количеством базового функционала, но является расширяемым. В любой момент можно добавить необходимый функционал, учитывая особенности конкретного проекта. Благодаря большому количеству расширений, у вас не возникнет проблем с реализацией собственной задумки. Подходит для начинающих программистов в качестве первого знакомства с phyton-фреймворками.
Официальная страница flask.pocoo.org

Web2py - его основой является концепция RAD(rapid application development) - быстрая разработка приложений. Это позволяет программистам оперативно создавать качественные продукты, при этом не придется затрачивать слишком много сил или времени. Разработчики постарались сделать фреймворк максимально простым и эффективным. Полностью открытый код позволяет создавать любые динамические сайты на языке Python. Фреймворк отличается масштабным функционалом и производительностью.
Официальная страница web2py.com


Django - фреймворк является очень популярным в целом, он лидирует в своем сегменте благодаря простоте и функциональности. Во-первых, для старта не нужны глубокие знания языка программирования Python. А благодаря DRY (Don`t repeat yourself)-принципу написание кода упрощается - вам не придется повторно вписывать строки, которые уже использовались, фреймворк самостоятельно это сделает, при этом код будет лаконичным и эффективным. Наследование шаблонов, а также стандартная структура - основные преимущества этого python-фреймворка. Имеется также система администрирования - CMS Django.
Официальная страница djangoproject.com

TurboGears - "долгожитель" своего сегмента, структура этого фреймворка оставлена из WSGI — компонентов (например, Pylons, CherryPy), позволяющих создавать любые современные проекты. Фреймворк является действительно мощным, отличается приличным функционалом. Есть поддержка разных баз данных, возможность масштабирования, недостатков практически нет.
Официальная страница turbogears.org

Tornado - у него есть главная особенность, которая сказывается на популярности - решение проблемы 10 000 соединений. Благодаря особенностям сервера, этот фрейворк может прекрасно справляться с тысячами одновременных подключений.
Официальная страница tornadoweb.org/en/stable

Итак, мы рассмотрели наиболее популярные HTML/CSS, PHP и Python-фреймворки, которые помогут вам при создании сайтов. Какой из них выбрать — зависит от вашего проекта и необходимых для реализации условий и характеристик фреймворка - выбор за вами. И, конечно, каждый фреймворк требует изучения и практики применения, только в умелых руках, он творит настоящие чудеса!

Сегодня вы увидите список PHPфреймворков со всеми их «плюсами» и недостатками. Я очень надеюсь, что данный список будет полезным для вас. Ну что ж, поехали!

Laravel


Необходимая версия PHP – 7

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

Плюсы:

  • Наличие MVC-архитектуры (в том числе для PHP 7)
  • Модульное тестирование (FAST для HHVM)
  • Высокий уровень абстракции
  • Возможности избежать перегрузок с помощью динамических методов
  • Огромное количество встроенных функциональных возможностей
  • Возможность интеграции платежей с системой Stripe
  • Надежная система шифрования данных

Phalcon


Необходимая версия PHP – 5.3

Phalcon – это MVC-ориентированный фреймворк для PHP. В отличие от других фреймворков для работы с Phalcon нужно относительно малое количество ресурсов, что приводит к очень быстрой обработке HTTP-запросов. Данная особенность может стать решающей для некоторых разработчиков, работающих с системами, о которых сложно сказать что-либо заранее.

Phalcon предоставляет разработчикам инструменты для хранения данных, такие как собственный диалект SQL: PHQL, а также объектно-документное отображение Object Document Mapping для MongoDB. Другие особенности данного фреймворка включают также: шаблонизаторы, форм-билдеры, простоту разработки приложений, предусматривающую поддержку на международном языке и т.д. Phalcon является идеальным вариантом как для создания различных REST API, так и для разработки полноценных веб-приложений.

Плюсы:

  • Высокая скорость и малые перегрузки
  • Уникальность – данный фреймворк создавался в качестве расширения языка программирования С.
  • Очень хорошие встроенные средства защиты
  • Огромное количество документаций
  • Ориентированный на разработчиков

Недостатки:

  • Не работает с HHVM

Symfony


Необходимая версия PHP – 5.5.9

Symfony – это наиболее популярный фреймворк для разработки веб-сайтов и веб-приложений. Компоненты Symfony – это набор не связанных между собой, повторно используемых компонентов, с помощью которых были созданы такие приложения, как Drupal, phpBB и eZ Publish.

Плюсы:

  • Высокая производительность благодаря кэшированию байт-кода
  • Надежность
  • Наличие хорошей документации, поддерживаемость
  • Хорошая поддержка; полностью сформированный фреймворк

Недостатки:

  • Несмотря на наличие хорошей документации данный фреймворк достаточно сложен в освоении.

CodeIgniter

Необходимая версия PHP – 5.4

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

Плюсы:

  • Ориентирован, в первую очередь, на разработчиков
  • Не требует каких-либо дополнительных зависимых объектов или иной поддержки
  • Возможность использовать обычные сервисы веб-хостинга, используя стандартные базы данных, например MySQL
  • Превосходит большинство других фреймворков (не MVC)
  • Наличие хорошей документации, а также LTS (поддержка в течение длительного периода)

Недостатки:

  • Отсутствует пространство имен, с другой стороны, это может увеличить скорость работы
  • Неудобен для модульного тестирования, в отличие от других подобных фреймворков
  • Небольшое количество библиотек, встроенных непосредственно во фреймворк
  • Является достаточно устаревшим фреймворком, не поддерживающим современные PHP-функции
  • Наличие проблем с безопасностью, которые были достаточно явными и на протяжении многих лет так и не были устранены командой разработчиков

CakePHP

Необходимая версия PHP – 5.5.9

CakePHP – это фреймворк, который упрощает и ускоряет процесс разработки приложений, при чем для этого требуется намного меньше кода. Это современный фреймворк для PHP 7, благодаря которому обеспечивается более гибкий уровень доступа к базам данных, а также мощная система кодогенерации. Благодаря данным особенностям разрабатывать как небольшие, так и сложные системы становится проще, быстрей и, разумеется, приятней. Если вы хотите разрабатывать быстро, то CakePHP – это именно то, что вы искали.

Плюсы:

  • Современный фреймворк, который поддерживает версии PHP 5.5+
  • Мощная система кодогенерации, возможность быстрой разработки
  • Очень хорошо подходит для разработки коммерческих веб-приложений (лицензия MIT)
  • Встроенный доступ к базе данных, а также кэширование, валидация и аутентификация
  • Обширные инструменты хранения включают межсайтовый скриптинг
  • Предотвращение межсайтовых атак с внедрением сценария, а также с помощью SQL-внедрения
  • CSRF, а также валидация формы
  • Наличие хорошей документации
  • Активно развивается

Недостатки :

  • Не так хорошо подходит для разработки Restful API, как Laravel или другие указанные выше фреймворки

Zend


Необходимая версия PHP – 5.6, 7.0

Zend – это фреймворк, который представляет собой набор профессиональных PHP-расширений с более чем 158 миллионами инсталляций. Данный фреймворк используется для разработки веб-приложений и сервисов с помощью PHP 5.6+ и гарантирует 100-процентный объектно-ориентированный код, используя широкий ассортимент свойств языка программирования.
Фреймворк Zend использует Composer для внедрения зависимостей пакетов; PHPUnit – для тестирования всех пакетов; Travis CI – в качестве службы для непрерывного интеграционного тестирования.

Плюсы:

  • Идеальный вариант для разработки коммерческих приложений
  • Объектно-ориентирован
  • Множество компонентов для валидации, «фидов» и форм
  • Содержит несвязанные компоненты

Недостатки:

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

FuelPHP


Необходимая версия PHP – 5.3.3

FuelPHP – это простой, гибкий, ориентированный на пользователей фреймворк для PHP версий 5.3+, вобравший в себя все наилучшие идеи других фреймворков, который только что был выпущен!

Плюсы:

  • Кэширование необязательно
  • Аутентификация пакетов
  • Возможность постоянной разработки
  • Маршрутизация URL
  • Новая версия будет полностью объектно-ориентированной и может быть установлена с использованием компоновщика, а после одной установки могут поддерживаться несколько приложений

Недостатки:

  • Достаточно сложный фреймворк для изучения новичками (небольшое количество документаций)
  • Достаточно новый фреймворк, который, пока что, мало где поддерживается
  • Небольшие вложения сообщества разработчиков программного обеспечения с открытым исходным кодом (например, по сравнению с Laravel или Phalcon)

Slim


Необходимая версия PHP – 5.5

Slim – это микро-фреймворк для PHP, который поможет вам быстро разрабатывать небольшие, но мощные веб-приложения и API.

Плюсы:

  • Является самым быстрым доступным RESTful-фреймворком
  • Наличие достаточного количества документации для успешного начала работы с данным фреймворком
  • Идеальный вариант для разработки небольших RESTful API
  • Активно развивается

Недостатки:

  • Предлагается небольшое количество возможных надстроек для компоновщика при установке

Phpixie


Необходимая версия PHP – 5.3

Phpixie – это один из наиболее популярных комплексных PHP-фреймворков. Он включает по умолчанию отличные инструменты для криптографии и для обеспечения безопасности, поддержку MongoDB, возможность «обмена» кодом с компоновщиком.

Плюсы:

  • Относительно новый фреймворк
  • Фреймворк, с которым просто начать работать
  • Документация содержит примеры использования кода
  • Хорошая система маршрутизации
  • Возможность быстро компилировать код
  • Является HMVC-ориентированным

Недостатки:

  • Небольшое количество модулей
  • Нет поддержки компонентов, которые были созданы независимо от зависимых объектов

Fat-Free


Необходимая версия PHP – 5.5

Это мощный, но простой в использовании мини-фреймворк для PHP, созданный для того, чтобы помочь вам разрабатывать динамические и надежные веб-приложения, и что самое главное – делать это очень быстро!

Плюсы:

  • Занимает минимальное количество памяти
  • Прост в изучении
  • Быстро справляется с оптимизацией для маршрутизации URL-адресов, кэш-моделями, кодом
  • Хорошо подходит для многоязычных приложений
  • Готовая поддержка для SQL или No SQL
  • Наличие баз данных
  • Множество программных пакетов, в том числе юнит-тестирование, изображения
  • Обработка исходных файлов, оптимизация JavaScript/CSS, проверка данных, наличие Open id и многое другое

Недостатки:

  • Слишком много всего для микро-фреймворков
  • По сравнению с указанными выше фреймворками не имеет новых опций
  • Допускает повторения кода, в отличие от других MVC-фреймворков, в которых данная проблема решена

Yii 2.0

Преимущества:

  • Простота установки
  • Yii является полностью объектно-ориентированным фреймворком и использует все преимущества продвинутых PHP функций
  • Yii framework можно легко настроить под свои нужды. Практически каждый компонент фреймворка является расширяемым
  • Yii тесно интегрирован с Codeception
  • Yii поставляется с компонентом Security, который предоставляет несколько методов для помощи в создании более безопасного приложения
  • Yii дает нам несколько инструментов, которые помогают нам уменьшить затрачиваемое время на не приоритетные задачи и сконцентрироваться над основной задачей
  • Легко настроить для лучшей производительности

Недостатки:

  • Сильная связанность классов. Все в системе наследуется от CComponent. Доступ к моделям через статические методы, что позволяет их юзать даже там, где не нужно.
  • Интеграция шаблонизатора (Twig, Smarty) довольно слабая, по сравнению с нативными шаблонами. А нативные использовать не охота.

Aura


Необходимая версия PHP – 5.4

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

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

Плюсы:

  • Занимает мало памяти
  • Наличие руководств для начала работы с фреймворком
  • Идеально подходит для работы с небольшими REST API
  • Находится в фазе активной разработки
  • Надстройки включают: HTTP-кеширование и Flash

Вот и все! Надеюсь данный список и описание всех PHP фреймворков будет вам полезно. Какой из PHP фреймворков вы используете? Дайте знать в комментарий

Среди всех языков серверного программирования PHP-фреймворк бесспорно наиболее приспособлен для изучения. Он практически всегда установлен даже на самом дешевом веб-хостинге. Он также легко устанавливается на любой рабочей машине. Новички, имеющие определенный опыт в разработке веб-страниц на HTML и CSS, смогут просто освоить основные понятия: переменные, встраиваемые условные конструкции и выражения include. PHP также предоставляет множество широко используемых функций, которые пригодятся для разработки динамических сайтов.

Все говорит о том, что язык PHP можно без проблем освоить быстро. Однако у этого преимущества есть и свои недостатки. Новички могут закрывать глаза на многие и нюансы и допускать ошибки в коде, поскольку они будут осваивать все довольно быстро и будут слишком уверены в своих знаниях. Чаще всего по мере добавления функционала на сайт код на выходе будет все сложнее и сложнее. Это потому что в PHP «из коробки» нет механизма, который бы помогал в разделении решения задач.

Давайте сейчас рассмотрим PHP-фреймворк, точнее 5 лучших из них, которые помогут справиться со многими проблемами при работе. Мы вкратце представим те, которые определенно стоит изучить в 2017 году, и расскажем, как именно они могут сделать разработку приложений проще. Поехали!

  1. Laravel

PHP-фреймворк существует уже довольно давно. Один из последних, новичок, — это Laravel. После выпуска 3-й версии его популярность кардинально повысилась, и на сегодняшний день это один из самых известных и распространенных фреймворков. У репозитория Laravel на GitHub рейтинг выше, чем у его более зрелых собратьев, таких как Symfony, CakePHP, CodeIgniter и Yii. О них речь пойдет позже.

Laravel повторно использует и монтирует существующие компоненты, предоставляя вам связующий слой, на базе которого вы можете более структурировано и практически создавать свои веб-приложения. Почерпнув самое лучшее из популярных фреймворков (не только на PHP, но и на других языках), Laravel предоставляет полноценный набор инструментов и архитектуру приложений, в которой собраны многие из лучших функций таких фреймворков, как CodeIgniter, Yii, ASP.NET MVC, Sinatra, Ruby on Rails и так далее.

Ниже представлен график, наглядно демонстрирующий рост популярности Laravel (источник – Google Trends). Максимальное значение (100) обозначает максимальную популярность технологии. Значение 50 говорит о том, что технология стала на 50% менее популярна, а значение 0 – о том, что популярность технологии снизилась до 1%. Все это актуально и для графиков популярности других фреймворков.

Рост популярности Laravel
(источник – Google Trends)

Большинство PHP-фреймворков используют парадигму разделения MVC (с англ. Model-View-Controller – Модель-Вид-Контроллер). Если вы когда-либо работали с одним из вышеупомянутых инструментов или знакомы с MVC, освоить Laravel 5 (самая последняя версия фреймворка) не составит труда.

  1. CodeIgniter

Как и Laravel, CodeIgniter основан на шаблоне MVC. Это такой подход к разработке ПО, который разделяет логику приложения от представления. На практике это позволяет снизить к минимуму количество сценариев на странице, поскольку представление отделено от выполнения сценариев на PHP.

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

Рост популярности CodeIgniter
(источник – Google Trends)

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

  1. Symfony

В то время как многие другие фреймворки лишь следуют правилам MVC, Symfony это фреймворк, у которого MVC лежит в основе. Возможно, это одна из причин, по которым фреймворк Laravel и такая система управления контентом (CMS), как Phpbb, переняли у Symfony многие компоненты и стали идти по его стопам.

Стандарты Symfony позволяют проще обрабатывать ошибки и писать высококачественный код. С каждым годом его сообщество растет. Symfony это передовой PHP-фреймворк, в основе которого лежат компоненты. Он позволит вам создавать качественные сайты и веб-приложения.

Рост популярности Symfony
(источник – Google Trends)

Symfony 3 это набор изолированных и многоразово используемых компонентов, на базе которых в свое время были созданы PHP-приложения премиум класса, такие как Drupal и phpBB.

PHP-фреймворк — рассказываем о лучших из них в 2017 году

  1. Yii 2

Yii – это фреймворк обобщенного веб-программирования. Это значит, что он легко подходит для PHP-программирования для различных видов веб-приложений. Благодаря компонентной архитектуре и поддержке усовершенствованного кэширования он особенно хорош для создания крупномасштабных приложений. Например, вы сможете создавать порталы, форумы, интернет-магазины, системы управления контентом (CMS), веб-служб RESTful и так далее.

В Yii используется архитектурная модель MVC, поэтому и организация кода осуществляется на базе этого подхода.

Рост популярности Yii
(источник – Google Trends)

Yii 2 это комплексный PHP-фреймворк, который предоставляет большое количество заслуживающих доверия и готовых к работе функций. Среди них построители запросов и шаблон ActiveRecord для различных баз данных (в частности, реляционных и NoSQL), поддержка разработки веб-API RESTful, поддержка кэширования в несколько уровней и так далее.

  1. Nette

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

Nette это современный PHP-фреймворк, который поддерживает такие технологии, как AJAX / AJAJ, внедрение зависимостей, KISS, MVC, SEO, cool URL и Web 2.0.

Рост популярности Nette
(источник – Google Trends)



PHP - наиболее популярный в мире серверный скриптовый язык. Он прошел большой путь развития от небольших, встраиваемых в код статических HTML страниц, снипетов, до современного языка, на котором разрабатывается большинство современных динамических сайтов.

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

Зачем использовать фреймворк
Но прежде чем приступить к обзору 10 фреймворков, которые мы тщательно отобрали и заботливо проанализировали для Вас, давайте поясним, для чего же они собственно нужны и какая от них польза.
Все дело в том, что использование фреймворков:
  • Существенно сокращает сроки разработки
  • Позволяет писать хорошо структурированный, хорошо документированный и повторно используемый код
  • Позволяет создавать масштабируемые, легко расширяемые приложения
  • Скрывает от разработчика необходимость заботиться о низкоуровневой безопасности сайта
  • Стимулирует следовать проектирования MVC (Модель-Представление-Контроллер), позволяющему разделить логику приложения и представление данных
  • Способствует применению современных методов программирования, в первую очередь объектно-ориентированного.

Laravel

Несмотря на свою молодость (первый релиз вышел в 2011 году), это уже совершенно зрелый продукт, и, согласно опросу, проведенному порталом SitePoint, он занимает первое место по популярности среди разработчиков на PHP.

Сейчас Laravel - это огромная экосистема, включающая хостинг и платформу для развертывания приложений. Он имеет собственный обработчик «Blade», элегантный синтаксис, упрощающий выполнение рутинных операций, таких как , управление сессиями, очередями, кэшированием и маршрутизацией. Кроме того, Laravel содержит локальную среду разработки Homestead, являющуюся частью пакета Vagrant.

В своих проектах мы регулярно используем именно Laravel. Огромным плюсом является то, что существует , где переведена практически вся техническая документация.

Symfony

Компоненты фреймворка Symfony 2 используют такие известные проекты как Drupal и phpBB, и даже рассмотренный выше Laravel. Symfony разрабатывается большим сообществом разработчиков и имеет огромную армию приверженцев.

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

CodeIgniter

Легковесный фреймворк с давней историей (первый релиз вышел в 2006 году). Традиционной его особенностью является исключительно легкий и быстрый процесс установки, и практически полное отсутствие необходимости в конфигурации. Это идеальный выбор, если хотите избежать конфликтов с версиями, поскольку работает практически на всех доступных платформах (в настоящее время требует только PHP 5.2.4)

CodeIgniter не в полной мере следует парадигме MVC - если уровень Контроллер является обязательным, то уровни Модели и Представления опциональны. Разработчик может использовать собственные правила кодирования и соглашения об именах, что, несомненно, предоставляет ему большую свободу. Ядро фреймворка имеет незначительный объем (около 2Мб), но функциональность можно расширить за счет плагинов от других разработчиков.

Yii 2

Yii 2 активно использует концепцию «ленивой» (или «отложенной») загрузки, что делает его одним из наиболее быстрых PHP фреймворков . Использует объектно-ориентированный подход и концепцию DRY (Don’t Repeat Yourself - Не Повторяйся) и позволяет создавать ясный и легко читаемый код.

Yii 2 тесно интегрирован с jQuery, содержит набор -функций и встроенный механизм «шкурок» и тем, так что идеально подходит для программистов и фронтенд разработчиков. Кроме того, в составе Yii 2 есть такое мощное средство, как генератор кода Gii, позволяющий облегчить рутинные операции при разработке проекта.

Phalcon

Этот фреймворк впервые появился в 2012 году и быстро приобрел популярность среди разработчиков. Он достигает высочайшего быстродействия за счет того, что написан на С/С++ , что и нашло отражение в его названии (Phalcon созвучно англ. falcon - сокол). Однако не беспокойтесь - Вам не придется погружаться в С/С++, поскольку вся функциональность реализована в виде PHP классов .

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

CakePHP

История развития CakePHP насчитывает уже 10 лет (первый релиз вышел в 2005 году), но он до сих пор остается очень популярным, поскольку активно развивается и идет в ногу со временем. Последняя версия этого фреймворка, CakePHP 3.0, содержит переработанный менеджер сессий, улучшенную, за счет разделения некоторых компонентов, модульность, и возможность создания самостоятельных библиотек.

На домашней странице проекта представлено внушительное портфолио этого фреймворка - с его помощью созданы сайты таких крупных корпораций, как BMW, Hyundai и Express. Это отличный инструмент для разработки приложений, во главу угла которых ставится безопасность. Проверка вводимых данных, защита от внедрения SQL кода, межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) - все это присутствует в CakePHP

Zend Framework

Zend - это мощный и стабильный PHP фреймворк, обладающий богатыми возможностями настройки, поэтому он, как правило, не рекомендуется для небольших проектов. Партнерами Zend являются такие гранды компьютерной индустрии, как IBM, Microsoft, Google и Adobe. Грядущий релиз Zend Framework под номером 3 будет оптимизирован для PHP 7, однако сохранит поддержку PHP 5.5.

Впрочем и текущий релиз Zend Framework 2 имеет множество замечательных функций, таких как инструменты для шифрования, удобный редактор, поддерживающий drug and drop и front-end технологии (HTML, JavaScript), полноценный online дебагер, модули для тестирования и подключения к базам данных. Zend Framework создавался с учетом методологии разработки Agile и предназначен для разработки высококачественных приложений корпоративного уровня.

Slim

Slim - PHP микрофреймворк, созданный по принципу «в нем есть все, что Вам нужно. Если в нем чего-то нет, то Вам это не нужно». Минималистический фреймворк, хорошо подходит для создания небольших приложений, для которых использование полноценного фреймворка было бы излишеством. На его создание автора вдохновил написанный на Ruby фреймворк Sinatra.

Slim широко используется разработчиками для создания RESTful API и сервисов. Он обладает такими функциями, как URL маршрутизация, управление кэшем на стороне клиента, шифрование cookies и сессий и поддержкой «flash» сообщений через HTTP-запрос. Slim снабжен прекрасной документацией, а в грядущий третий релиз Slim добавлены новые функции.

FuelPHP

FuelPHP - гибкий и многофункциональный PHP фреймворк, поддерживающий парадигму HMVC (Hierarchical Model-View-Controller), представляющую собой дальнейшее развитие модели MVC. Она имеет дополнительный класс Presenter (ранее называемый ViewModel), связывающий классы Controller и View, и отвечающий за логику, необходимую для генерации View.

Благодаря модульной архитектуре FuelPHP легко расширяем, обладает такими полезными функциями, как фильтрация вводимых данных и URL, шифрование и содержит собственный фреймворк для аутентификации со своими замечательными функциями и подробнейшей документацией.

PHPixie

PHPixie - относительно новый высокопроизводительный фреймворк, разрабатываемый с 2012 года и предназначенный для создания простых веб-сайтов. Как и FuelPHP, PHPixie следует парадигме HMVC и построен с помощью независимых компонентов, которые, к тому же, могут самостоятельно использоваться вне фреймворка.

На официальном веб-сайте можно найти обучающий курс, который, по заявлениям разработчиков, позволит освоить PHPixie всего за 30 минут. Среди других компонентов фреймворка следует отметить собственную ORM (object-relational mapping), механизм кэширования, валидатор вводимых данных, систему авторизации, встроенный язык разметки HAML и замечательный модуль маршрутизации.

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png