はじめに
ちょっとした切欠で、Phalconというフレームワークの存在を知りました。
Laravel以外のフレームワークを調べた際は、Phalconについてはノーマークだったこともあり調べていなかったので、Phalconについて調べました。
Phalconとは
2012年にリリースされたC拡張として記述されたフルスタックPHPフレームワークで、他のフレームワークに比べて処理速度が速く、また、オーバーヘッドやメモリ使用量が少ないことが特徴です。
バージョンが1.xの頃はC言語で開発されていましたが、保守などの問題から、バージョン2以降はZephirという言語で殆ど開発されています。
Zephirとは
Zephir(Zend Engine PHP Intermediateという単語の短縮形)とは、PHPの拡張モジュールをC言語を書かずに開発できる言語で、Phalconの開発チームによって作られました。
C言語の知識がなくともPHP拡張が作れ、PHPスクリプトではなく、ネイティブなCコードにコンパイルされるため、通常のPHPコードより高速に動作するようです。Phalconが高速な理由の一つは、Zephirで開発されているから、と言えるでしょう。
Phalconの機能はどんなものがあるか
- MVC、HMVCアーキテクチャ
2012年リリースということもあり、他のフレームワークに倣ってMVCパターンが搭載されています。また、HMVCも使用できます。
他にも - DI(Dependency Injection)
- ORM(Object-Relational Mapping)
といった機能も搭載されています。
また、テンプレートエンジン(Volt)という独自のテンプレートエンジンもあり、こちらは高速に動作して、ビューを簡単に作成出来るテンプレートエンジンです。SymfonyのTwigに似ているようなので、そちらが扱えるとさほど苦労せずにこのテンプレートエンジンを扱えそうです。
他に、PHQLというPhalcon クエリ言語があり、SQLのように記述出来るオブジェクト指向のクエリ言語です。SQLに近い構文でクエリを記述することができ、クエリ結果をモデルのオブジェクトとして返す特徴があります。
Phalconで開発する際にネックになりそうな点
ここまで調べたところで、Phalconは他のフレームワークに比べて軽量で動作が高速である点を意識して開発されていたことが分かりましたが、同時にPhalconを使用する際にネックになりそうな点もありました。
-
ドキュメントや情報が少ない
公式のドキュメントはありますが、LaravelやSymfonyなどのフレームワークに比べて情報が少ないです。また、Laravelなどと比べてPhalconを扱う人が少ないので公式ドキュメント以外で情報を集めるのも苦労する場面がありました。そのため、学習には一苦労しそうです。 -
導入が一手間かかる
他のフレームワークのようにComposerで簡単にインストールできるわけではなく、サーバーにPhalconの拡張をインストールする必要があります。また、php.iniファイルを編集する必要があり、その反映のためにサーバーを再起動の必要があります。
まとめ
Phalconというフレームワークは処理速度が速い「らしい」というのは調べてパッと出てきましたが、速い理由が他のフレームワークはPHPのスクリプトとして実行するのに対してPHP拡張として動作するからだと知れてよかったです。
また、情報を集めるのに苦労しそうだ、と知ることが出来たのも良かったです。
現在はPhalconを本格的に使用していませんが、本格的に使用する際には、行った作業を一つ一つ備忘録として記録するようにしたいですね。
参考資料
Phalcon Framework: High Performance PHP Framework
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/