sonyps4.ru

Лучшие фреймворки php. Как выбрать тот самый PHP-фреймворк

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 и замечательный модуль маршрутизации.

1. За последние несколько лет количество фреймворков в мире веб-разработки резко выросло, причем за каждым из них стоит большое количество людей, которые убеждают, что это лучший инструмент в своей области. Как выбрать правильный и подходящий фреймворк или набор фреймворков на проект?

Александр Макарчук , qb
У каждого фреймворка есть огромное количество поклонников и противников. При выборе фреймворка необходимо учитывать несколько факторов. Во-первых, фреймворк должен иметь ровно столько возможностей, сколько необходимо проекту. Излишний функционал не нужен, но при этом никогда не должно возникать ограничений при доработке проекта. Во-вторых, время разработки сайта не должно увеличиваться за счет выбора того или иного фреймворка. В-третьих, фреймворк должен быть достаточно распространен, для того чтобы проект можно было передать другому разработчику. Наконец, безопасность фреймворка - один из важнейших показателей. Все фреймворки хороши, если находятся в правильных руках.

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

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

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

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

Алексей Федоров , «Одноклассники»
Как и с любыми инструментами, ответ сильно зависит от сроков проекта. Если проект короткий, берите или то, с чем можно быстро стартовать (например, Bootstrap), или то, что хотите изучить и с чем вы хотите «поковыряться». Если проект длинный, лучше собирать собственную библиотеку компонентов.

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

Александр Макарчук , qb
Зачастую встроенный готовый функционал позволяет собрать достаточно неплохую «коробку». При каком-либо отклонении приходится либо «костылить», либо «перепиливать» функционал. Тенденция будет усиливаться, так как время разработки - очень важный показатель. Но это приведет к тому, что в интернете будет появляться все больше и больше «кривых» сайтов.

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

Александр Макаров , Yii
Да, продолжится. Риски, главным образом, в найме специализирующихся на одном фреймворке сотрудников. Как только задачи выйдут за рамки фреймворка или возникнет необходимость в использовании другого фреймворка, такой сотрудник может показать себя плохо.

Алексей Персианов, Михаил Парфенюк , ADV
Если сегментация технических решений будет углубляться, то так и будет. Но в данный момент большинство фреймворков поддерживают схожий функционал, и сегментация не слишком высока. Специфичные решения есть только для самых массовых видов задач.

Александр Смирнов , Greensight
Да, выбор технологического решения напрямую зависит от потребностей проекта, изученного техническим руководителем инструментария и его способности сопоставить одно с другим. Выбор языка - это скорее вопрос ресурсов: насколько легко найти разработчика в команду, если будет потребность ее расширения и т.п.

Алексей Федоров , «Одноклассники»
Языки и фреймворки, особенно на поздних стадиях развития, это ортогональные вещи. В развитых экосистемах фреймворки, как правило, имеют API для работы с несколькими языками и наоборот: языки с большой экосистемой имеют множество фреймворков, готовых для использования.

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

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

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

Александр Макарчук , qb
Гарантия надежности фреймворка - его отказоустойчивость. Правильная разработка, оптимизация запросов, хорошее кеширование - вот залог успеха. Можно ли выпускать сайт в продакшн, расскажет нагрузочное тестирование.

Александр Макаров , Yii
Наличие стабильных релизов, большое количество пользователей, наличие автоматизированных тестов, наличие активности, open source.

Алексей Персианов, Михаил Парфенюк , ADV
Поддержка фреймворка, его совместимость с предыдущими версиями и комьюнити.

Александр Смирнов , Greensight
Грубыми, но, как правило, работающими показателями стабильности и качества фреймворка являются размер сообщества разработчиков, возраст фреймворка, количество успешных кейсов, аналогичных поставленной задаче, частота изменений и количество звездочек (лайков) в репозитории фреймворка. Конечно, это грубая оценка, но с нее можно начать, и углубляться в обзоры, отзывы и т.д.

Алексей Федоров , «Одноклассники»
Во-первых, это open source, то есть открытый код. Это некоторая гарантия того, что если у вас что-то сломается в продакшне, вы сможете починить это своими руками. Во-вторых, вендор. Вендор языка или фреймворка может давать вам те или иные гарантии, часто подкрепленные контрактом. В-третьих, обратная совместимость. На практике это выливается в использование правильных версий языков и библиотек. Не стоит тащить в ваш продакшн библиотеку версии 0.7: как правило, если у языка или фреймворка версия ниже, чем 1.0, то нет никаких гарантий обратной совместимости.

4. Каково направление развития фреймворков, как они будут изменяться в дальнейшем?

Александр Макарчук , qb
Как ни прескорбно, но, на мой взгляд, фреймворки будут двигаться по пути «облегчения» разработки. Типовые решения, готовые модули и прочее - все для того, чтобы неподготовленный человек смог развернуть сайт.

Алексей Зубань , Wow
Для многих популярных платформ период наращивания функциональности прошел. Сейчас развитие сфокусировано на увеличении быстродействия. Это справедливо и для frontend-, и для backend-фреймворков. В качестве частного решения может служить разбивка фреймворка на логические модули. Для проекта должен собираться комплект библиотек, решающих только необходимые задачи. А также ожидаю решений, все плотнее связывающих клиентскую и серверную часть, фреймворков с единым синтаксисом и логикой работы с контентом.

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

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

Алексей Федоров , «Одноклассники»
Упрощение или, говоря более строго, коммодитизация. Фреймворки становятся все сложнее и навороченнее внутри, но все проще для пользователя. Такое упрощение - отличный способ для авторов снизить порог входа в их разработку с тем, чтобы увлечь своим языком или фреймворком как можно больше пользователей.

5. Какие еще фреймворки могут появиться? Какие области еще не закрыты и ждут появления своего удобного инструмента?

Александр Макаров , Yii
Абсолютно любые. Всегда можно сделать лучше.

Алексей Персианов, Михаил Парфенюк , ADV
Не хочу «суфлировать» разработчикам готового ПО. Таких областей масса, но надо оценивать их емкость. Очевидно, емкие ниши уже протаптываются, а остальные пока потенциальных поставщиков не привлекают.

Александр Смирнов , Greensight
Развитие фреймворков зависит от потребностей рынка и возможностей браузеров и пользовательских девайсов. Развитие фреймворков напрямую зависит от развития и появления новых платформ: Canvas, WebGL, Node.js - как только появлялись эти технологии, в скором времени появлялись и фреймворки по работе с ними. Как только появляется новая технология, она сразу обрастает соответствующими фреймворками.

Алексей Федоров , «Одноклассники»
Сейчас идут активные разработки вокруг контейнеризации. Подобные продукты еще очень далеки от идеала, с ними много проблем, поэтому многие большие проекты разрабатывают собственные решения в этой области для работы с большими инфраструктурами.

6. Сейчас фреймворками называют довольно широкий набор решений и библиотек. Может ли это измениться, появится ли более конкретная терминология? В рейтинге мы разделили фреймворки на frontend и backend. Как еще можно типизировать все это множество фреймворков?

Александр Макарчук , qb
Можно, но необходимости в этом не вижу.

Александр Макаров , Yii
Терминология есть и давно. API-фреймворки, REST-фреймворки, фреймворки-грабберы, фреймворки для мобильной разработки, модульные сетки, адаптивные фреймворки, фреймворки для модульной верстки. Перечислять можно бесконечно.

Алексей Персианов, Михаил Парфенюк , ADV
Да, фреймворками называют как «монстров», так и маленькие библиотеки с единственной функцией. В ближайшее время придет понимание, что такое фреймворк и библиотека, и появится четкое разделение. Что касается типизации, то на данный момент как раз и есть две ветки.

Алексей Федоров , «Одноклассники»
Типизировать можно кучей способов. Есть фреймворки для связи с базами данных, есть фреймвоки для связывания компонент, есть фреймворки для работы с сетью и еще для сотни-другой задач. Поэтому я бы не говорил о каком-либо строгом разделении.

7. Использование фреймворков в работе - временная мода или необходимость? Какие существуют доводы «за» и «против» использования фреймворков?

Александр Макарчук , qb
Безусловно, необходимость. Писать с нуля то, что написано во фреймворке и потом «латать дыры» - это наступать на чужие «грабли».

Алексей Зубань , Wow
Фреймворки, не навязанные извне технологии. Большинство из них создается коллективно заинтересованным сообществом разработчиков. И они вполне успешно решают актуальные проблемы, стоящие перед разработчиками. Фреймворки - добро. Другое дело, если инструмент используется неправильно или в неподходящих условиях, но это не минус технологии, это вопрос образования разработчиков.

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

Алексей Персианов, Михаил Парфенюк , ADV
Использование фреймворков - это необходимость, которая ускоряет, стандартизирует и удешевляет разработку. Доводами «за» и «против» является распространенность фреймворка и его реальная необходимость проекту.

Александр Смирнов , Greensight
Использование фреймворков - это скорее неизбежность. Даже если вы решите писать приложение сложнее «Hello, world» с нуля, в результате все равно получится какой-нибудь фреймворк.

Алексей Федоров , «Одноклассники»
Использование готовых решений, с одной стороны, сильно ускоряет разработку и внедрение, а с другой - вносит в ваш проект чужой legacy-код с кучей своих багов и ограничений. Фреймворки - это слой, на котором работает ваше приложение. Под этим слоем лежит ваш рантайм, под ним - операционная система, а под ним - железо. И все это, заметьте - готовые решения. Я не вижу тренда ухода с готовых процессоров на процессоры собственной разработки или тренда перехода с готовых операционных систем на что-то самописное. И для фреймворков я такого тренда тоже не вижу.

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

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

Алексей Зубань , Wow
Понятие CMS и фреймворка не конфликтуют между собой. CMS - это шаблонный интерфейс по управлению приложением. В основе CMS вполне могут быть использованы фреймворки. И решение о необходимости использования или создания такого интерфейса должно опираться на функциональность приложения. Нетиповые вещи сложнее реализовывать в шаблонных рамках. Большая гибкость фреймворков может быть полезна, когда над проектом работает несколько команд и/или необходимо внедрять системы непрерывной интеграции.

Александр Макаров , Yii
Никогда. Есть проекты, которые вписываются в CMS. Есть проекты, которые не вписываются в CMS. Инструмент надо выбирать по задаче, а не задачи подгонять под инструмент.

Алексей Персианов, Михаил Парфенюк , ADV
Когда становится понятно, что в обозримом плане развития проекта слишком много задач приходится писать практически с нуля.

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

Алексей Федоров , «Одноклассники»
Когда затраты на разработку и поддержку становятся слишком большими.

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

Slim

Slim - микрофреймворк, идеально подходящий для небольших проектов или приложений, где полноценный фреймворк покажется лишним. Его используют многие PHP-разработчики для создания RESTful API и сервисов. Среди функций Slim - кэширование HTTP на стороне клиента, URL-маршрутизация, шифрование сессий и cookie, а также мгновенные сообщения по HTTP-запросам. Документация полная и сделана качественно.

Phalcon

Phalcon был создан в 2012 году и быстро стал популярным среди PHP-разработчиков. Его считают очень быстрым, так как он написан на C и C++, чтобы достигать наивысшего возможного уровня оптимизации производительности. Но не волнуйтесь, учить С не придется - вся функциональность заключена в PHP-классы, которые можно использовать для любых целей.

Так как Phalcon изначально был создан как расширение на С, его архитектура оптимизирована на низком уровне, что значительно снижает расходование ресурсов, типичное для приложений, основанных на схеме MVC. Phalcon не только повышает скорость выполнения, но и снижает уровень затрат ресурсов. У этого PHP-фреймворка есть и много других замечательных функций: универсальный автозагрузчик, менеджмент ресурсов, безопасность, перевод, кеширование и т. д. Документация для Phalcon довольна обширна, а использовать его несложно.

Интересный факт: еще в году Phalcon был вторым по популярности фреймворком, согласно данным sitepoint.com. А уже в 2015-м он заметно сдал позиции и переместился ближе к концу списка.

CakePHP

Фреймворку CakePHP уже десять лет, а он все еще в топе. Работе с ним легко обучиться, а шаблонирование - быстрое и настраиваемое. Встроенная функция CRUD очень помогает при взаимодействии с базой данных. В последнем релизе - CakePHP 3.x - улучшилось управление сессиями и модульность (они разъединили несколько компонентов), а также расширились возможности создания большего количества отдельных библиотек.

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

  • валидация ввода;
  • Защита от атак с использованием внедряемого SQL (SQL injection);
  • предотвращение межсайтового скриптинга;
  • защита от подделки межсайтовых запросов и многое другое.

Zend Framework 2

Zend Framework 2 - фреймворк с открытым исходным кодом, использующийся для разработки веб-приложений и сервисов на PHP 5.3+. Он использует на 100% объектно-ориентированный код и большинство новых функций PHP 5.3: пространства имен, позднее статическое связывание, лямбда-функции и замыкания. Zend - надежное решение со множеством вариантов конфигурации. Обычно его не рекомендуют использовать для небольших приложений, а вот для крупных проектов это самое то.

Среди функций Zend Framework 2: инструменты криптографического кодирования, простой в использовании drag-and-drop-редактор с поддержкой фронтенд-технологий (HTML, CSS, JavaScript), мгновенная онлайн-отладка, инструменты для unit тестирования, мастер конфигурации базы данных. Создатели этого фреймворка учли методологию Agile, что позволяет создавать высококачественные приложения для корпоративных клиентов.

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

Yii 2

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

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

PHPixie

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

На официальном сайте PHPixie есть обучающее видео, в котором заявляют, что обучиться работе с фреймворком вы сможете всего за полчаса . В их блоге также много практический кейсов. Среди функций:работа с БД на уровне объектов (ORM), кеширование, валидация ввода, аутентификация и возможности для авторизации. Можно использовать язык разметки HAML, легко вносить изменения в структуру БД, а также есть продуманная система маршрутизации.

Интересный факт о PHPixie: согласно исследованию Sitepoint 2015 года, это любимый фреймворк украинских PHP-разработчиков. Компания «Культпросвет» тоже находится в Украине, но мы почему-то не можем поставить этот фреймворк на первое место, рука не поднимается. PHPixie также популярен среди группы респондентов до 18 лет. Мы думаем, это благодаря картинке с феечкой на сайте:D

CodeIgniter

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

CodeIgniter не совсем опирается на схему MVC. Использование контроллеров обязательно, а моделей и представлений - нет, так что можно применять собственные стандарты оформления кода и найменований. Этот фреймворк подойдет тем, кому тесно в рамках, - тут море свободы. По сути это простой фреймворк на 2 МБ, но при желании можно добавлять сторонние плагины, если требуется более сложная функциональность.

Symfony 2

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

Компоненты Symfony - это PHP-библиотеки, которые можно использовать повторно и выполнять с их помощью множество задач: создание форм, конфигурацию объектов, маршрутизацию, аутентификацию, создание шаблонов и много чего еще. Любой компонент можно установить с помощью Homestead , которая по сути является надстройкой над Vagrant.

Сравнительная таблица PHP-фреймворков

Laravel Symfony 2 Codeigniter PHPixie Yii 2 Zend Framework 2 CakePHP Phalcon Slim Fuelphp
требуемая
версия php
5.5.9 5.5.9 5.4 5.3 5.1.0 5.3 5.5.9 5.3 5.5 5.3.3
ТИПы
поддерживаемых
баз данных
MySQL Postgress SQLite SQL Server MySQL
Postgress
SQLite
Qracle
MySQL
Postgress
MySQL
PostgreSQI
SQLite
MongoDB
MySQL
Postgress
Qracle
Sqlite
MySQL
SqLite
SQL Server Oracle Postgress
MySQL
SQLite Postgress
SQL server
Oracle
MySQL
SQLite Postgress
Oracle
MySQL
SQLite Postgress
Oracle (через
плагин
Slim-PDO)
MySQL
SQLite Postgress
Облачное
хранилище
Amazon S3
Rackspace
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3 Amazon S3
Rackspace
Windows Azure
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3
(плагин)
документация на
официальном
сайте
Пошаговое
руководство,
справка по API, видеоуроки
Пошаговое
руководство,
справка по API
Небольшое
пошаговое
руководство,
справка по API
Пошпговое
руководство
Пошаговое
руководство,
справка по API
Пошаговое
руководство,
подробная справка
по API с

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

Laravel

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

Последний пункт проявляется в следующих возможностях:

  1. Поддержка сторонних модулей, коих немалое количество, что значительно расширяет стандартные возможности фреймворка.
  2. Обратная маршрутизация, позволяющая вам не тратить время на обновление ссылок при работе - всё происходит автоматически.
  3. Шаблоны проектирования Eloquent ORM, что помогает в определении строгих отношений между объектами БД.
  4. Автоматическая загрузка классов. Это, с одной стороны, уменьшает объем кода из-за отсутствия необходимости писать include…, с другой стороны - неиспользуемые классы не подключаются со всеми вытекающими.
  5. Модульное тестирование - наличие большого числа тестов для предотвращения наслоения ошибок.
  6. Система управления версиями БД. Если вы предполагаете часто несущественно обновлять свой продукт - данная функция позволит вам не тратить время на однотипные записи.

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

CodeIgniter

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

Несмотря на простоту, как у любого популярного фреймворка, у CodeIgniter также есть парочка полезных особенностей:

  1. Большая поддержка сообщества CodeIgniter Reactor, в том числе библиотеки, модули, шаблоны и документация.
  2. Шаблоны для работы с БД, которые очень похожи на синтаксис SQL.
  3. Возможность кэширования на стороне сервера.
  4. Использование менеджера пакетов для быстрого подключения библиотек из командной строки.

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

Symfony

Несмотря на то, что релиз третьей версии состоялся еще в 2015 году, именно вторая версия Symfony единолично удерживает 3-е место по популярности среди фреймворков. Причина здесь схожа c CodeIgniter - скорость работы и общая простота. Но чтобы это не шло в разрез с функциональностью, пользователю предлагается выбрать одну из 3 версий для профильной работы:

  1. Standard Edition - для знакомства и выполнения общих задач. На ней основан дистрибутив Hello World Edition, который содержит ровно один скрипт оптимизации для дальнейшего использования в бенчмарках.
  2. Symfony CMF - адаптация для разработчиков, работающих с CMS-системами.
  3. REST Edition - оптимизация для работы с REST-архитектурой (интернет-магазины, поисковые системы и т.д.).

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

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

Yii

Yii во многих рейтингах преподносится как главный конкурент Symfony. Основания для этого действительно есть: оба языка работают с полным стеком, у обоих исходники на GitHub, оба достаточно качественно представляют шаблонную разработку. Однако в то время как Symfony предоставляет лишь модель и контроллер, в Yii реализована полноценное MVC-взаимодействие. Кроме того, интерфейс в Yii куда удобнее, генерация кода с помощью браузерного элемента Gii здесь немного мощнее, да и вообще по факту Yii позволит вам сэкономить больше времени на разработке, а приложение будет работать чуть быстрее.

Nette Framework

Пожалуй, наименее известный из топовых PHP-фреймворков, что удивительно на фоне его 13-летнего возраста и широких возможностей. Вот некоторые из них:

  1. Один из самых производительных PHP-фреймворков .
  2. Прекрасно подойдет для новичков, кривая обучения достаточно плавная.
  3. Мощные инструменты в помощь: Tracy - для отслеживания ошибок, Latte - быстрый и интуитивно понятный генератор шаблонов, Tester - утилита для качественного тестирования вашего приложения в приближенных к реальным условиям.
  4. Возможность коллективной работы нескольких разработчиков над одним проектом.
  5. Прекрасная документация и дружелюбное сообщество (и не только на чешском языке).

В общем, если вы еще не попробовали Nette - рекомендуем, если нашли какие-то недостатки - обязательно пишите в комментариях.

Короткой строкой

CakePHP - популярный клон Ruby on Rails, только ориентированный на PHP. Все преимущества также схожи.

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

Phpixie - одной из главных «фишек» данного фреймворка является обновление. Больше не надо ждать несколько месяцев новую ревизию. Обнаружили -> подгрузили исправление -> работаете дальше. Принцип примерно такой.

Fat-Free - очень лёгкий, быстрый и простой фреймворк для разработки на скорую руку. Минимум посторонних забот.

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

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

1 year ago | 18.4K


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

На помощь программистам и верстальщикам приходят такие популярные и эффективные инструменты: PHP Фреймворки и CMS (от англ. Content Management System - система управления контентом). Вариант выбора зависит от знаний вебмастера и целей, поставленных перед проектом.

Как же разобраться и понять, что выбрать Фреймворк или CMS?

Что из себя представляют PHP-Фреймворки

Работа с Фреймворком требует определенных знаний. Но это не так страшно, как может показаться на первый взгляд.

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

Самые популярные PHP Фреймворки:
Zend Framework ;
Yii ;
Phalcon ;
Codeigniter - изучите у профессионалов:


Достоинства

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

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

3. Универсальность. Используя готовые классы и библиотеки Фреймворков можно решить любую поставленную задачу.

Трудности, с которыми вы можете столкнуться

1. Новичку, первое время будет довольно тяжело разобраться в коде. Но нужно заметить, что язык PHP довольно прост в изучении и интуитивно понятен. Освоив азы, вы довольно быстро разберетесь и со сложными заданиями.

2. Для разработки сайта требуется определенное время. Хотя в библиотеках Фреймворков есть все необходимые коды, собрать из них функционирующий сайт не так уж и просто. Зато полученный результат того стоит. У вас будет уникальный, не похожий на другие, сайт.

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

4. Считается, что сайты, созданные на основе Фреймворков, обходятся дорого в обслуживании. Причина кроется в уникальности. Даже опытный программист через полгода может забыть, какие коды он использовал при создании сайта. Чтобы упростить работу необходимо оставлять комментарии для каждого используемого элемента.

Системы управления контентом (CMS)

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

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

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

Самые популярные CMS:
Joomla! - подробнее читайте
Drupal ;
WordPress .

Достоинства

1. Самое главное достоинство - это минимальное время, требующееся для разработки сайтов.

2. Множество готовых дополнений в виде легко устанавливаемых расширений.

3. Изучение, настройка - несложные, интуитивно понятные.

4. Дают возможность создать свой сайт, даже если вы совершенно не владеете языками программирования.

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

На что нужно обратить внимание

1. У многих CMS есть некоторая ограниченность в возможностях. Встречаются системы с четко очерченными задачами. Что касается монстров как WordPress или Joomla! - здесь все решается путем установки расширений, в результате получаются сайты с большими возможностями.

2. Более низкая производительность, чем у сайтов, созданных на Фреймворках, требует больше ресурсов (не имеет значения, при мощном серверном оборудовании).

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

Выводы

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

Если вам не важна уникальность, а сайт требуется создать в кратчайшие сроки - нужна CMS.

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



Загрузка...