Phalcon PHP - egy új perspektíva

A keretrendszerek fejlődését folyamatosan próbálom nyomon követni, hogy naprakész ismereteim legyenek az új technológiákról és ajánlott konvenciókról. A Phalcon PHP egy szó szerint nagy teljesítményű keretrendszer, amelyet egy ötletes megoldásnak köszönhet.


A Phalcon PHP egy teljes értékű MVC keretrendszer a konkurenseknél már megszokott szolgáltatásokkal, viszont teljesítményben felülmúlja azokat. Ezt annak köszönheti, hogy lényegében egy C nyelven íródott PHP kiterjesztés, ezért csak egyszer töltődik be a memóriába, és kevesebb processzor időt is igényel.

Hello World Benchmark

A hivatalos oldalon elérhető egy Hello World Benchmark, ahol a többi keretrendszerrel összevetve oszlopdiagramokon ábrázolták az eredményeket. Az alábbi két diagramon a másodpercenként kiszolgált kérések számát és az egy kérésre fordított időt láthatjuk:

A következő kettőn pedig a beolvasott PHP fájlok számát és a memória használatot:

Előnyök

  • Gyors és kicsi a memória igénye
  • Többféle alkalmazás struktúra alakítható ki
  • Sok funkciót tartalmaz, ezért kevés harmadik féltől származó kódra lesz szükség

Hátrányok

  • A PHP kiterjesztés miatt nehezen vagy egyáltalán nem használható osztott tárhelyeken
  • Hiba esetén nem férünk hozzá a kódhoz, mint egy hagyományos PHP keretrendszernél

Zephir - Ze(nd Engine) Ph(p) I(nt)r(mediate)

A Phalcon PHP sok kritikát kapott, hogy a C nyelv használata miatt a kód fekete doboz jellegű egy PHP fejlesztő számára. Megoldásként a fejlesztő csapat megalkotta a Zephir programozási nyelvet, amelynek célkitűzése, hogy megkönnyítse a PHP kiterjesztések fejlesztését. A nyelv használatával saját kiterjesztéseket készíthetünk PHP jellegű nyelvi elemekkel, amelyek aztán C kódra fordulnak vissza. A hivatalos oldal Hello World példakódja:

Tipp! Zephir nyelven teljesen újraírták a Phalcon PHP keretrendszert a 2.0 verzióban.

Zephir kód

namespace Test;

/**
 * This is a sample class
 */
class Hello
{
    /**
     * This is a sample method
     */
    public function say()
    {
        echo "Hello World!";
    }
}

C kód

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_test.h"
#include "test.h"

#include "kernel/main.h"

/**
 * This is a sample class
 */
ZEPHIR_INIT_CLASS(Test_Hello) {
    ZEPHIR_REGISTER_CLASS(Test, Hello, hello, test_hello_method_entry, 0);
    return SUCCESS;
}

/**
 * This is a sample method
 */
PHP_METHOD(Test_Hello, say) {
    php_printf("%s", "Hello World!");
}

Összegzés

A Phalcon PHP sebessége, szolgáltatásai és egyre növekvő felhasználói bázisa engem meggyőztek arról, hogy a jövőben fontolóra vegyem a használatát. Azt viszont megjegyezném, hogy a sebesség nem minden, mert HHVM használatával a hagyományos PHP keretrendszerek is gyorsíthatóak.