もやもやエンジニア

IT系のネタで思ったことや技術系のネタを備忘録的に綴っていきます。フロント率高め。

PHPで最速という噂のPhalconフレームワークをさわってみる

諸事情によりPhalconをさわることになった!割と久しぶりのPHPです。今回は導入だけ。

Phalconフレームワークとは

サイトはこちら
http://phalconphp.com/en/

「Phalconは、C拡張として実装され、ハイパフォーマンスに最適化された、オープンソースのPHP5向けのフルスタックフレームワークです。」とのことで、何やらででーんと「The fastest PHP Framework」と書いてあり、とりあえず少ないリソースでパフォーマンス出せるフレームワークの模様。ベンチマークものっけてますね。

入れてみよう

自分のマシンにインスコしようかと思ったのですが、サンプルのVagrantのBoxが公式にこちらで配布されていたので使ってみます。ちなみにVagrantは名前くらいしか知らない初心者もいいとこなのでVagrant覚えるついでに使ってみます。以下の手順はVagrantVirtualBoxはインストール済な前提なので無い場合は入れて下さい。

では作業用のディレクトリを掘って、boxを追加します。

$ mkdir ~/vagrant/phalconSample
$ cd  ~/vagrant/phalconSample
$ vagrant box add phalconbox53 https://s3-eu-west-1.amazonaws.com/phalcon/phalcon125-apache2-php53-mysql55.box
$ vagrant init phalconbox53

ここまでやるとVagrantfileがcurrentに作成されるので、こいつを編集します。以下のラインのコメント外して有効にします。これでVagrant仮想マシンにIPが振られます。

config.vm.network "private_network", ip: "192.168.33.10"

そして起動

$ vagrant up

で、動いているか確認します。以下のURLをブラウザで開きます。
http://192.168.33.10/
http://192.168.33.10/website/

それぞれApacheの見慣れたIt WorksとPhalconのページが表示されれば成功です。

仮想環境上のファイルをSublimeで開きたい・・・

僕はメインのエディタがSublimeなのですがVagrant上のサンプルをSublimeでいじりたいので以下の設定を追加します。厳密にはSublimeで仮想環境にアクセスするのではなく、ローカル環境と仮想環境でディレクトリを同期する設定をいれます。

まずはVagrant上のhttpdのドキュメントルート配下のファイルをローカルにコピー。scp用のconfigを作ってそれを使ってVagrant上からファイルをコピーします。サンプルのBoxのドキュメントルートは/var/www/なのでそこの中身をローカルの適当なディレクトリにごっそり落とします。

$ vagrant ssh-config > .ssh-config
$ scp -F ./ssh.config -r vagrant@default:/var/www/. ~/Documents/php/phalconSample

ほんでVagrantfileを開いて以下の行を探します

# config.vm.synced_folder "../data", "/vagrant_data"

こいつはローカルのディレクトリとVagrant上のディレクトリを同期させる設定です。コメントを外して有効にし、1つめの引数に今ダウンロードしたディレクトリを、2個目のディレクトリにVagrant側のドキュメントルートを指定します。

# config.vm.synced_folder "~/Documents/php/phalconSample", "/var/www"

Vagrantfileを保存して再起動します。

$ vagrant reload

これで準備OKです。設定が正しく反映されていれば、ローカルで編集した内容がVagrant上にファイルに反映されるはずです。編集するファイルはなんでもよいので/index.htmlを書き換えてみます。

f:id:Rei19:20140727171602p:plain

適当に「Hello Phalcon !!」を追加してみました。こいつを保存して今度はブラウザからVagrantにアクセスしてみます。

f:id:Rei19:20140727171806p:plain

先ほど追加した「Hello Phalcon !!」が反映されているのがわかります。ローカルと仮想環境で同期が成功しているみたいですね。これで使い慣れたエディタで作業しながら動作確認はVagrantで行うことができるようになりました。ようやく準備が出来たのでPhalconをいじりたおしていこうかなと。しかし文献がすくねー。