「Cloud Foundry 百日行」第70日目。
今回はすこし変わったところでJavaScriptなのにPHPを動作させることが出来るUniterです。このアプリはブラウザ上でPHPのコードを書いて、その結果を表示させて確認することまでが可能です。使えるPHPの機能は一部のようですがPHP初心者の方などには簡単に試せて便利なツールになるかもしれません。
基本情報
手順は以下の通りです。
- 1) ソースコードの取得
- 2) アプリのデプロイ
- 3) 動作確認
1. ソースコードの取得
まずはとりあえずソースコードを取得しましょう。
$ git clone https://github.com/asmblah/uniter.git
Cloning into 'uniter'...
remote: Counting objects: 8791, done.
remote: Total 8791 (delta 0), reused 0 (delta 0), pack-reused 8791
Receiving objects: 100% (8791/8791), 3.57 MiB | 1.76 MiB/s, done.
Resolving deltas: 100% (5056/5056), done.
Checking connectivity... done.
$ cd uniter/
uniter$ ls
bin demo index.html js package.json research tests
bower.json dist index.js MIT-LICENSE.txt README.md styles vendor
2. アプリのデプロイ
デプロイ自体はこれまでに何度となく登場しているstaticfile_buildpackで動作させることが可能です。
最初にStaticfileを作成します。
uniter$ touch Staticfile
これで準備完了。ではデプロイしましょう。
uniter$ cf push uniter
:
:
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: uniter.10.244.0.34.xip.io
last uploaded: Thu Oct 1 01:04:44 UTC 2015
stack: cflinuxfs2
buildpack: Static file
state since cpu memory disk details
#0 running 2015-10-01 10:04:57 AM 0.0% 8.7M of 256M 0 of 1G
完了です。
3. 動作確認
ここまでPHPの影が出てきていませんが出番はここからになります。
URLにアクセスしましょう。
画面が出てきたら中央の interactive demo
をクリックして下さい。
そうすると、下記のような 「JavaScript」 , 「PHP」 , 「Result」 が並んで表示されます。
最初にお伝えした通りこのアプリはJavaScriptでPHPを動作させるアプリです。なので中央の「PHP」のコードを好きなように書き換えると「Result」に結果を表示してくれます。
セミコロンを抜いてみるとちゃんとエラーになります。
条件分岐とかも可能。
今回のアプリのように、JavaScriptの実行環境でPHPが利用出来たり、今後、他の言語も利用できるようになると便利そうですね。参考ページに紹介されていますが、「クライアントサイド」から「サーバサイド」ではなく、「サーバサイド」から「クライアントサイド」の流れで、こういったアプリがより充実してくると、アプリ開発の環境がより良くなっていくかもしれませんね。
今回使用したソフトウェア
- cf-release (v211)
https://github.com/cloudfoundry/cf-release/tree/v211
(https://github.com/cloudfoundry/cf-release/tree/2121dc6405e0f036efa4dba963f7f49b07e76ffa) - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/552dc6869600c5350eb7ffb4fb9c9c5e79e3889d - CF CLI (v6.12.0-8c65bbd-2015-06-30T00:10:31+00:00)
https://github.com/cloudfoundry/cli/tree/v6.12.0
(https://github.com/cloudfoundry/cli/tree/8c65bbd4d243cbbc9bdbf2ec2a3b0e094c094f48) - Uniter
https://github.com/asmblah/uniter/tree/a64786568bd5bb8ab77f1802938b41509c1a901e