Phalcon PHP MVC Framework

В интернете много фреймворков PHP, все они уникальные по своему, высокая скорость, хорошая документация. Один из них Phalcon (Фалкон). Но Phalcon действительно необычный фреймворк, по сравнению с другими платформами; это не просто очередной пакет который вы загружаете, это модуль PHP, написан на языке C.

В этой статье мы разберём что такое Phalcon (Фалкон) и почему он такой особенный.

Что такое Phalcon?

Phalcon — фреймворк, создан как расширение для высокой производительности и для снижения потреблений ресурсов. Это алгоритм MVC и предлагает функции, такие как ORM, кэширование, пагинатор страниц… полный список возможностей можно найти на сайте .

Уникальность Phalcon в том что вы не просто скачали архив и распаковали в каталог, как это делается в большинстве других структур. Фреймворк Phalcon устанавливается, как модуль PHP. Процесс установки занимает несколько минут.

Установка Phalcon на WampServer

WampServer — для разработки веб-приложений в системе Windows.

После загрузки Phalcon, распакуйте архив. Скопируйте файл php_phalcon.dll для расширения PHP. Если WAMP установлен в c:\wamp папка модуля должна быть по адресу c:\wamp\bin\php\php5.3.10\ext

Установка Phalcon
Установка Phalcon добавлять в конец файла: extension=php_phalcon.dll

Отредактируйте файл php.ini, он расположен: с:\wamp\bin\php\php5.3.10\php.ini. Его можно отредактирован с помощью Notepad или аналогичной программой. Добавлять в конец файла: extension=php_phalcon.dll и сохраните его.

Установка Phalcon
Установка Phalcon на WampServer копируем файл php_phalcon.dll

Также редактировать другой файл php.ini, который находится в c:\wamp\bin\apache\Apache2.2.21\bin\php.ini. Добавить в конец файла: extension=php_phalcon.dll и сохраните его.

Перезапустите Веб-Сервер Apache. Сделать один щелчок по WampServer, значок возле часов в системном трее. Нажимаем “Перезапустить все сервисы”. Ждём пока значок станет снова зеленым.

Установка Phalcon
Установка Phalcon (Перезапустить все сервисы)

Откройте в браузере http://localhost . На  странице добро пожаловать будет отображаться. Смотрите раздел “загруженные расширения”, чтобы проверить, был ли установлен phalcon.

Установка Phalcon
Установка Phalcon Смотрите раздел “загруженные расширения”

Поздравляю!, Вы установили Phalcon.

Скомпилированный Phalcon для лучшей производительности

Одним из главных недостатков  PHP является то, что при каждом запросе, все файлы считываются с жесткого диска, переведенные в байт-код. Это вызывает потери производительности по сравнению с другими языками, такими как Ruby или Python. Вся структура Phalcon, уже находящиеся в оперативной памяти, поэтому весь набор файлов инфраструктуры не нужно обрабатывать. Есть ориентиры на сайте, доказывающие что он действительно имеет значительное преимущество в производительности.

Полный фреймворк Phalcon
Лучшая производительность фреймворка Phalcon

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

Применить Phalcon

Phalcon предлагает классические черты современного PHP MVC фреймворка (маршрутизация, контроллеры, просмотр шаблона, ORM, Кэширование, и др.), так что, кроме скорости, в нём нет больше ничего особенного. Все же, давайте посмотрим на то, что можно сделать с Phalcon.
Во-первых, там загрузочный файл который будет вызываться при каждом запросе.  Запросы отправляются в оригинальный загрузчик с помощью директивы в файле .htaccess .



<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>


В документации Phlacon рекомендуется использовать следующую структуру каталогов:



app/
    controllers/
    models/
    views/
  public/
    css/
    img/
    js/


Если нужно структура каталогов может быть изменена, поскольку все будет осуществляться через загрузчик public/index.php .



<?php
try {
    // register an autoloader
    $loader = new PhalconLoader();
    $loader->registerDirs(array(
        '../app/controllers/',
        '../app/models/'
    ))->register();
 
    // create a dependency injection container
    $di = new PhalconDIFactoryDefault();
 
    //set up the view component
    $di->set('view', function(){
        $view = new PhalconMvcView();
        $view->setViewsDir('../app/views/');
        return $view;
    });
 
    // handle the request
    $application = new PhalconMvcApplication();
    $application->setDI($di);
    echo $application->handle()->getContent();
}
catch (PhalconException $e) {
     echo "PhalconException: ", $e->getMessage();
}


Модель контроллера

Контроллеры и модели будут загружаться автоматически, так что вы можете просто создавать файлы и использовать их с любой точки проекта. Контроллеры должны находится Phalcon\Mvc\Controller, место для моделей Phalcon\Mvc\Model .

Действия контроллера определяются следующим образом:



public function indexAction() {
echo 'welcome to index';
}


Модели определяются тоже не сложно:



class Users extends \Phalcon\Mvc\Model
{
}


Путем расширения класса Phalcon\Mvc\Model , вы немедленно получите доступ к некоторым удобным методам, такие как find() , save() , и validate() . Использовать так:



class Users extends Phalcon\Mvc\Model
{
public function initialize() {
$this->hasMany('id', 'comments', 'comments_id');
}
}


Просмотр

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



<html>
 <head>
  <title>Blog's title</title>
 </head>
 <body>
<?php echo $this->getContent(); ?>
 </body>
</html>


Phalcon имеет встроенный флэш для сообщений:



$this->flashSession->success('Succesfully logged in!');


Phalcon Query Language

Phalcon имеет свои ORM, Phalcon Query Language (PHQL), которые могут быть использованы для взаимодействия с базой данных. PHQL может быть интегрирован с моделями, что можно было легко определить связь между таблицами.

Вы можете использовать PHQL путем расширения класса Phalcon\Mvc\Model\Query , а затем создать новый запрос:



$query = new Phalcon\Mvc\Model\Query("SELECT * FROM Users", $di);
$users = $query->execute(); 


И вместо raw SQL, вы можете использовать создателя запросов вроде этого:



$users = $this->modelsManager->createBuilder()->from('Users')->orderBy('username')->getQuery()->execute();


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

Заключение

Phalcon предлагает классические черты современного PHP MVC фреймворка. Основное преимущество Phalcon над другими PHP MVC фреймворками, является скорость. Если вы заинтересовались Phalcon, смотрите полную документацию .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML -теги и атрибуты: <a href= http://pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>