Table of Contents
Фреймворки для PHP — одна из самых быстроразвивающихся отраслей программирования. Одним из них можно назвать и Phalcon, который является не только каркасом для веб-приложений, но и расширением языка. Этот фреймворк стал популярен по одной простой причине: разработчики хотят, чтобы все действия происходили быстро и точно, а с этим «Ястреб» пока справляется. Рассмотрим основные характеристики программного обеспечения и решим, достоин ли он быть в пантеоне наиболее используемых фреймов.
Подарок от С-семейства
До того, как создали Phalcon, абсолютное большинство аналогичных программ было написано на PHP для PHP. Создатели этого каркаса решили изменить стандартному подходу и написать новинку на C, что дало немало преимуществ в виде оптимизации:
- ни для кого не секрет, что С является одним из самых быстрых языков программирования. Он выполняется еще быстрее, чем Java, что видно при сравнительных тестах аналогичных программ. А если учесть, что PHP — не самый шустрый среди равных, симбиоз с С-фреймворком делает приложение более конкурентным в плане скорости;
- лаконичность. Если вы привыкли к длинным и непонятным выражениям в “шаблонизаторе”, значит, пора знакомиться с С. Он дал Phalcon возможность развиваться быстрее и получать более качественные обновления, чем PHP-конкуренты;
- набор операций. То, что в PHP можно выполнить только при помощи целой груды костылей, в C является стандартным функционалом. Он оснащен возможностями, которые делают его одним из самых универсальных: хоть бэк-приложения на нем пиши, хоть движки для игр;
- Ловить баги в PHP — настоящая охота, в то время как строгая типизация в С позволяет допустить минимум ошибок и быстрее реализовать проект.
Вооружившись этой и другими концепциями, в 2012 году выпустили первый Phalcon (да-да, звучит как космическая технология). Он уже был оснащен ORM — системой, которая позволяет преобразовать данные классов в такие, которые могут обрабатываться в системах управления базами данных. Это было весьма продуктивно. Больше не нужно писать SQL-код для взаимодействия с БД. Таким образом, снижается входной порог в веб-разработку: нет необходимости понимать и работать с еще одним языком, причем, с довольно старым. Это прямое общение с базами данных через язык С — сокращение во времени работы в десятки раз.
Еще одной отличительной характеристикой было внедрение концепции MVC, или Модель-Вид-Контроллер, как это привычнее для разработчика. Ее суть в том, чтобы полностью разделить интерфейс, с которым взаимодействует пользователь, и бизнес-логику, которая управляет приложением. Это был шаг к более успешной и активной разработке: каждый из отдельных элементов может быть изменен независимо друг от друга. Больше не нужно было подгонять “костыли” под каждую функцию. Пока работает одна часть приложения, вы модифицируете другую.
В модульной системе Phalcon каждый слой отвечает за свой функционал:
- в модели представлены данные, а на их изменения может влиять исключительно контроллер;
- вид или представление дает результат пользователю, когда модель изменяется;
- контроллер — это связь с внешним миром. Например, для запрограммированного устройства все ваши действия тщетны, ведь он не знает, как их интерпретировать. За это в MVC отвечает контроллер. Он воспринимает действия пользователя и интерпретирует их для модели.
Если говорить кратко, что же делает Phalcon особенным фреймворком, о котором обязательно нужно узнать, если не обеспечить себя этим инструментом сию же минуту?
Во-первых, это его скорость и потребление ресурсов. Здесь фреймворк выигрывает у конкурентов абсолютно. Был проведен тест скорости выполнения операций, в котором участвовало более десяти наиболее популярных представителей аналогичного ПО.
Например, в плане производительности веб-каркас не нашел себе равных среди всех конкурсантов. К примеру, своего ближайшего соперника, версию PHP 5.6 и 7.1, он обошел в два раза. Как эквивалент производительности, выбрали количество обрабатываемых запросов в секунду. “Ястреб” показал от пяти до семи тысяч операций в секунду, в то время как CI-3.0 выдал не больше пяти на версии 7.1.
То же самое можно говорить и о занимаемой памяти. Бралась в учет та память, которую использовал фреймворк при выполнении задач. Phalcon опять занял лидирующую позицию по всем версиям PHP, и только в 7.0 с ним сравнялся ближайший конкурент — CI.
Но кроме производительности, которая необходима для выполнения наибольшего числа операций в секунду, интересно было бы измерить то время, которое понадобится платформе для выполнения одной поставленной задачи. И опять Phalcon оказался впереди. Правда, не на первом месте — здесь CI все же обошел “ястреба” на всех версиях “шаблонизатора”.
Phalcon хорош также и тем, что дает прирост своей эффективности на каждой новой версии языка. Он развивается явно быстрее остальных. Некоторые разработчики связывают это с “молодостью” технологии.
Самое интересное, что такие результаты были ожидаемыми для большинства программистов, которые понимают, что ПО на С будет значительно быстрее любого PHP аналога. Достаточно близко к нему подобрался Codeigniter 3, который тоже использует MVC и является относительно новым. Однако он полностью написан на PHP.
Инсталляция — проще простого
Установка этого программного обеспечения может производиться двумя способами. Первый весьма тривиален, он производится благодаря открытию исполнительного файла. Такая опция доступна в коммерческих операционных системах, таких как Windows и OS X. Во всех остальных установка Phalcon производится путем сборки файлов.
Обычный установщик можно скачать с официального сайта разработчиков. Кстати, не забывайте, что для инсталляции фреймворка необходим предустановленный PHP. Phalcon является расширением для языка и предусматривает установку отдельного модуля.
Отличия от конкурентов
Тем не менее, если он настолько хорош, почему многие из наших читателей узнают о Phalcon только сейчас, уже успев перепробовать массу удачных решений и не очень? Все очень просто: некоторые особенности фреймворка не позволяют использовать его для ежедневной работы специалиста средней руки. Далее сравним полезность Phalcon и некоторых других платформ.
Поучись у Laravel
Да, звучит довольно странно, если учесть, что эта платформа серьезно отстает по всем тестам, которые показывали эффективность того или иного фреймворка. Более того, Laravel даже не приблизился к Phalcon ни по одному из показателей. Тем не менее, первый популярен, а последний только набирает популярность.
Здесь решающей была совокупность факторов. Как минимум, Laravel значительно легче изучить. Это фрейм, который делает разработку легче, в то время, как «Ястреб» — эффективнее. К тому же, для рефакторинга в Phalcon вам будут нужны навыки в языке С, в то время как это не самый распространенный скилл среди веб-мастеров. Он, скорее, экзотический в этой сфере.
Сравнение с Codeigniter
Здесь однозначный вин, и CodeIgniter держится в топе благодаря своему имени. Он существенно отстает по всем параметрам, но имеет более разнообразный набор средств. К тому же, при адекватной оптимизации может практически сравняться с Phalcon.
На равных с Симфонией
Это один из немногих примеров подобного программного обеспечения, который может сравняться c Phalcon по многим параметрам. Особенно, если дело касается разработки REST API — оба фреймворка справляются одинаково хорошо. Но производительности все же больше у Phalcon, как в любом другом случае.
Но благодаря только одной характеристике Phalcon до сих пор не может захватить рынок: он требует прав администратора на сервере, чтобы провести установку. А так как установка этого ПО на сервер необходима для Phalcon, то популярность платформы падает. Кроме того, мало сервисов VPS дают права администратора своим клиентам.
Любой другой фреймворк отлично работает и при использовании AMP-наборов, в то время как для установки этого инструмента нужно рутировать на сервере. Потому Phalcon работает только на масштабных проектах, которые расположены на собственном “железе”. Кстати, если использовать фреймворк все же хочется, то на официальном сайте есть список серверов, на которых ПО уже установлено.