Phalcon Framework

しゃーーーーーーーーーっ!!!パッションの伝道師こと鰯です。

今日は、ComposerPhalconAutoload 使っちゃう話しだよっ!!

Composer 使ってますかーーーー??

Composer イイよね!!

Phalcon イイよね!!

背景

まず、ことの背景として、Phalcon を使い始めた当初、Phalcon に Autoload 実装があって、

ちょっと、Composer と雰囲気違ったので、Phalcon の Autoload でやる事にしたのですが、

利用ライブラリが増えるに従って、何かと面倒になり、途中から、Composer の Autoload に

切り替えました。

しかし、Composer による恩恵は多大であると認識しつつも、Phalcon の Autoload も

少しはパフォーマンス的に有利なのでは?という気持ちもあり、Composer を使いつつ、

Autoload は Phalcon にしたい、という欲望があり、調べ始めたところ。

ステキエントリーを発見!!

Composer の オートローダーだけ Phalcon に差し替える – Qiita

と、ここまでは良いのですが、自前クラスローダを事前に読み込まなければならないので、

普段使いには、ちょっと… という感じでした、

調べたところ、Composer に Plugin の仕組みがあることを発見したので、Pluginとして

使えるようにしてしまおう!と思った次第です。

続きを読む

概要

Composer の autoload 系のファイルが自動生成されるときに、

さきほどの自前クラスローダを、生成するように実装しようという感じです。

プラグイン作成

プラグインの作成方法には2種類あるようで、既存のComposer内のクラスを自前のクラスに

差し替える方法と、イベントディスパッチャによるフックポイントに対して

イベントを追加してあげる方法。

今後の Composer の更新も考えると、今回は、後者を選択した方が良さそうです。

以下、プラグインのコードですが、ポイントとしては、ScriptEvents::POST_AUTOLOAD_DUMP

イベントを追加するところでしょうか。

そして、composer.jsonはこんな感じで作成します、ポイントは、"type": "composer-plugin"でしょうか

あと、プラグインの場合は、"extra" 指定が必須のようですので、こちらも重要です。

まとめ

こんな感じで、Composerプラグインが簡単に作れちゃいます、

これで、Composerの素晴らしい恩恵を受けつつ、PhalconによるAutoloadが使えるので、

わだかまりも、すっきりして、素敵なPhalconライフが送れますね!

今回参考にさせて頂いた、以下のページも合わせて読むとプラグインが簡単に作れるので、ぜひ、作ってみてください!

あわせて読みたい記事