Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

第55回PHP勉強会@関東で発表してきた

無事、第55回PHP勉強会@関東が終了しました。幹事のid:gusagiさん、会場を提供していただいた株式会社コンテンツワンさん、ありがとうございました:-)
今回は『PHP for Android 〜 SL4A+PFA』ということで、PHPAndroidな話をさせてもらいました。

プレゼン資料

いつも通り、handsout.jpにUPしてあります。slideshareにUPし直しました。フォントが。。。コードとか一切でてこないので、これだけ見ても分らんなぁ。。。


また、デモで使ったコードは、doyouphp.jpにUPしてあります。Android.phpはPFAをインストールすれば、自動的にインストールされます。

SL4A+PFAのインストールについて

プレゼンの時は完全に端折りましたが、RequirementsにあるInstall SL4A (Android Scripting Environment)Install PhpForAndroid.apkの2つを実行することになります。要は、

  1. SL4AとPFAのapkをダウンロードしてそれぞれインストール
  2. PFAを実行し、"Install"ボタンを押して、PHPバイナリやサンプルコードをインストール

という内容になります。参考までに、PHPバイナリなどのインストール中の画面は次の通りです。

APIについて

最初に実行したhello_world.phpは次の通り。

<?php
require_once("Android.php");

/**
 * Androidオブジェクトを生成
 */
$droid = new Android();

/**
 * 入力ダイアログを表示し、入力を待つ
 */
$name = $droid->dialogGetInput("Hi!", "What is your name?");

/**
 * 入力結果をトーストで表示
 */
$droid->makeToast('Hello, ' . $name['result']);

これを実行すると、

というような入力ダイアログが表示され、入力後OKボタンを押すと、

という感じのトーストが表示されます(下の方に出ている"Hello, ほげ"という部分)。
AndroidクラスはあくまでSL4AとJSON RPCするためのクライアントに過ぎませんので、使えるAPIはSL4Aの方で定義されています。APIリファレンスは次のURLを参照してください。

PEARライブラリのインストール

ここも説明を端折りましたが、PFAを実行してインストールされるPHPバイナリは本体側、サンプルコードはSDカード側に保存されます。

/
├─data
│  └─data
│      └─com.irontec.phpforandroid
│          └─files
│              └─php
│                  └─bin  ... PHPバイナリ
└─sdcard
    ├─com.irontec.phpforandroid
    │  └─extras
    │      └─php  ... Android.php, php.ini
    └─sl4a
        └─scripts  ... サンプルコード
            └─PFAf
                ├─Library
                └─UserScripts

で、php.iniを確認すると、

include_path = ".:/sdcard/com.irontec.phpforandroid/extras/php"

となっているので、今回は、CentOSにインストールしてあるPHP5.2.17のPEAR_INSTALL_DIR配下をそのまま/sdcard/com.irontec.phpforandroid/extras/phpにコピーして使いました。当然、別途ディレクトリを作成し、include_pathを指定しても大丈夫なはずです。
実際に、所有しているX06HT(HTC Desire)の当該ディレクトリの中身は次のような感じになっています。

懇親会

なんか、久しぶりにPHP勉強会の懇親会が肉だった気が。。。そうでもないか。

開始時間がちょっと遅目だったので、終電を意識しつつwかなりドタバタでした。初めてお会いする方、かなりご無沙汰してた方、いろいろいらっしゃいました。久しぶりに、名刺配り歩いてた気がします。それぞれ、ちょっとずつしかお話できませんでしたが、仕事の話とかAndroidな話とかいろいろと。。。あと、プレゼンは概ね好評だったようで良かったです:-)

帰りはギリギリで、どうにか終電に間に合いました。ちょっとやばかったです。。。

参加された皆さん、お疲れ様でした:-)