諸事情によりPhalconをさわることになった!割と久しぶりのPHPです。今回は導入だけ。
Phalconフレームワークとは
サイトはこちら
http://phalconphp.com/en/
「Phalconは、C拡張として実装され、ハイパフォーマンスに最適化された、オープンソースのPHP5向けのフルスタックフレームワークです。」とのことで、何やらででーんと「The fastest PHP Framework」と書いてあり、とりあえず少ないリソースでパフォーマンス出せるフレームワークの模様。ベンチマークものっけてますね。
入れてみよう
自分のマシンにインスコしようかと思ったのですが、サンプルのVagrantのBoxが公式にこちらで配布されていたので使ってみます。ちなみにVagrantは名前くらいしか知らない初心者もいいとこなのでVagrant覚えるついでに使ってみます。以下の手順はVagrantとVirtualBoxはインストール済な前提なので無い場合は入れて下さい。
では作業用のディレクトリを掘って、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を書き換えてみます。
適当に「Hello Phalcon !!」を追加してみました。こいつを保存して今度はブラウザからVagrantにアクセスしてみます。
先ほど追加した「Hello Phalcon !!」が反映されているのがわかります。ローカルと仮想環境で同期が成功しているみたいですね。これで使い慣れたエディタで作業しながら動作確認はVagrantで行うことができるようになりました。ようやく準備が出来たのでPhalconをいじりたおしていこうかなと。しかし文献がすくねー。