Phalcon - фреймворк «без компромиссов»

6 Ноябрь 2016 1 комментарий

В настоящее время большинство разработчиков просто не может себе представить эффективное развитие в сфере WEB без использования механизмов, которые делают все намного проще и быстрее. Но, как мы все знаем, ничто не является совершенным. Чем фреймворк больше и чем он более всеобъемлющий, тем более вероятно, что это больно отразится на производительности вашего веб-сайта или приложения. Тем не менее, есть фреймворк Phalcon, способный бросить вызов этому высказыванию.

Phalcon является PHP-фреймворком с открытым исходным кодом, выпущенным в 2012 году.

В принципе, каждый PHP-фреймворк утверждает, что он уникален, предоставляя в качестве доказательства перечисление некоторых специфических особенностей, принципы проектирования и безупречную документацию. Но среди всех этих решений, Phalcon открывается как действительно уникальный фреймворк. В отличие от большинства фреймворков, он не установлен просто как каталог в вашем проекте, он написан на языке Zephir, транслируемом в C, скомпилирован и поставляется в виде C-расширения PHP. Вам не нужно учить или использовать язык C, так как вся функциональность реализована в виде PHP-классов, готовых для использования. Phalcon также имеет слабую связность, что позволяет использовать его объекты в качестве компонентов вашего приложения в зависимости от его потребностей. Цель такого подхода - сделать фреймворк быстрее без ущерба для его функциональности и без понижения его до микрофреймворка.

Что такое фреймворк?

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

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

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

Как работает PHP?

  1. PHP имеет динамическую типизацию без необходимости явного указания типов.
  2. PHP интерпретируется (а не компилируется).
  3. Каждый раз, когда скрипт загружается, PHP должен интерпретироваться.
  4. Если не используется акселератор, кэширующий байткод (например, такой как Zend OPcache), проверка синтаксиса тоже выполняется каждый раз, когда скрипт загружается.

Как работают традиционные PHP-фреймворки?

  1. Множество файлов с классами и функциями считываются при каждом запросе на сервер, что приводит к постоянной загрузке жёсткого диска - который и является "узким местом" современных компьютеров в контексте производительности.
  2. Современные фреймворк используют "ленивую" технику загрузки (автозагрузки) для загрузки и выполнения только непосредственно нужного кода.
  3. Непрерывная загрузка/интерпретация может быть долгой, ресурсозатратной и повлиять на производительность вашего приложения.
  4. При использовании фреймворков большая часть кода остается неизменной в процессе эксплуатации. Зачем загружать и интерпретировать его каждый раз?

Как работают C-расширения PHP?

  1. Расширения C загружаются вместе с PHP один раз в процессе работы веб-сервера.
  2. Классы и функции, предоставляемые расширением, готовы для использования любым приложением.
  3. Код не интерпретируется, так как он скомпилирован для конкретной платформы и процессора.

Как работает Phalcon?

  1. Компоненты слабо связаны. Вы можете использовать компоненты, которые вы хотите, как вам удобно.
  2. Оптимизация на низком уровне обеспечивает самое низкое потребление ресурсов среди MVC-приложений.
  3. Взаимодействие с базами данных осуществляется с максимальной производительностью с помощью ORM, реализованной для PHP через C.
  4. Phalcon непосредственно взаимодействует с PHP, так что он может получить быстрый доступ к внутренним структурам, для оптимизации их выполнения.

Phalcon - идеальный баланс между возможностями и производительностью

Когда речь идет о создании приложений - вы не хотите идти на компромисс, не так ли? Если это действительно так, то вы должны обязательно обратить внимание на Phalcon. Phalcon предоставит вам все типичные черты больших и комплексных фреймворков, но в то же время, так как он поставляется в виде модуля C на основе языка PHP, его скомпилированные компоненты выполняются гораздо быстрее, чем традиционные фреймворки написаные на чистом PHP. Phalcon реализует многие типичные решения - такие как внедрения зависимостей, например - но они сильно отличаются от тех, которые обычно предоставляются в большинстве фреймворков, и являются гораздо более практичными. Еще один интересный и примечательный факт - разработчики Phalcon создали новый язык программирования высокого уровня под названием Zephir. Вы можете узнать больше об этом здесь - https://zephir-lang.com.

Почему Phalcon?

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

  1. Это самый быстрый PHP фреймворк.
  2. Он использует мало ресурсов сервера.
  3. Он предоставляет все стандартные компоненты, включая ORM (встроенную поддержку как SQL и NoSQL), MVC, маршрутизаторы, REST, внедренные зависимости, кэш, шаблонизаторы, ACL, и многое другое.
  4. Он может быть использован в качестве микро- и макрофреймворка.
  5. Понятная и широкая документация.
  6. Растущее с каждым днем дружественное сообщество, готовое предоставлять помощь.
  7. Поддерживает PHP7.

Так что, казалось бы, он совершенен?

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

Несколько слов о скорости

Он очень быстрый. Но, чтобы дать вам более полную картину, давайте посмотрим на некоторые тесты. Мы предлагаем вам взглянуть здесь - https://github.com/kenjis/php-framework-benchmark (бенчмарки фреймворков) и здесь - https://github.com/kenjis/php-orm-benchmark (бенчмарки ORM). Ниже вы можете найти результаты тестов четвертого квартала 2015 года:

Компоненты Phalcon

Фронтенд:

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

{{javascript_include("JavaScript/jquery.js")}}

Бэкенд:

1. Внедрения зависимостей с использованием объектно-реляционного отображения - больше не надо писать строки подключения к базе данных и SQL-запросы. Хотите найти пользователя?

User::find(array("email" => "jacksonfdam@gmail.com"));

2. Менеджеры событий - эта услуга позволяет выполнять действия до и/или после каждого запроса и не только - она полностью настраиваема и применима к любому классу.

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

phalcon project myAwesomePhalconProject

Новый контроллер:

phalcon controller Posts

Новая модель:

phalcon model —table-name Users

ORM ищет таблицы в базе данных с параметрами проекта, получает атрибуты и формирует модель.

Как начать использование Phalcon?

Если вам интересно как начать использовать Phalcon, мы предлагаем следующие шаги:
Если вы используете Vagrant, скачать и ознакомиться со средой разработки Vagrant доступной на Github - https://github.com/phalcon/vagrant
Если вы используете Docker, загрузите этот стабильный пакет - https://github.com/szeist/docker-phalcon,
а также Apache и PHP7 пакет - https://github.com/szeist/docker-phalcon, который уже включают в себя структуру Phalcon.
Пользователи Windows тоже не остались с пустыми руками - получить библиотеку DLL можно здесь - https://phalconphp.com/pl/download/windows
Вам также потребуется список команд - https://phalconphp.com/pl/download, необходимых для установки и компиляции Phalcon на Linux/Unix/Mac.

Если у вас уже установлен Phalcon, либо возникли проблемы с ним, то в интернете полно качественных ресурсов.
Наиболее важные из них включают в себя официальную документацию - https://docs.phalconphp.com/en/latest/index.html (доступна на нескольких языках) и Phalcon,
конечно же, хорошо известен и любим на stackoverflow.com - http://stackoverflow.com/questions/tagged/phalcon.

Если Вы хотите оставаться в курсе событий:
сайт Phalcon - https://phalconphp.com/pl/,
официальный блог - https://blog.phalconphp.com/,
страница на Facebook - https://www.facebook.com/pages/Phalcon-фреймворк/134230726685897,
страница Twitter - https://twitter.com/phalconphp,
страница Google Plus - https://plus.google.com/+PhalconPHP/videos,
страница Github - https://github.com/phalcon/cphalcon.

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

Популярные статьи

То, что еще нравится нашим читателям

Комментарии

1 комментарий
Дмитрий — 7 December в 17:40

Спасибо за статью. Довольно интересно.

Оставьте комментарий

Нам важно ваше мнение
Укажите корректный e-mail
Укажите ваше имя
Напишите текст комментария

Заявка на сотрудничество с нами

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

Не корректный email