Firebug FireCookie
Pinoco
- PHP5.4をすぐに使ってみる
- Array Short Syntax
- Built-n Server
- Trait
- Closure
- その他
5.4の機能を知りたいときはGrahamさんの作ったスライドを見るべし。
PHP5.4をすぐに使ってみる
PHP5.4 RC1(2011/11/11)
(リリース候補登場)
必要なもの
Windows
バイナリあるからビルドはしないほがよい
Mac
XCode + MacPorts or HomeBrew
Linux
特になにも
あとでスライドはダウンロードが出来るので
ぼちぼちやってください。
できあがり
make installしなくても
sapi/cli/phpを使ってだいぶ遊べる
うまくいかない人はconfigureオプションを
減らしていくといい。 無指定だと拡張機能がなくても
だいぶ動くPHPになる。
バージョン確認
% sapi/cli/php -v
シェルで遊ぶ
クロージャをつかってもよい
2進数リテラルを使って遊べばいい
Array Sort Syntaxl
arrayが必要ではなくなる。
array(1,2); [1,2]; array('a' => 1, 'b'=> 2); ['a' => 1, 'b' => 2];
@rsky 氏が作成
var $belongsTo = [ 'User'; ];
まとまりが良くなる。
- 右手だけのキーストロークになる
- 関数の引数の括弧とは違うように見える
- PHP以外の人にもわかってもらえる
- Arrayで動作オプションを渡す関数がもっと使いやすくなる
Built-in Server
コマンドラインのPHPが
ローカルテスト用のサーバになる
% php54 -S localhost:8080
コマンド一発で立ち上がる。
どこがおいしいのか
- file://では期待通り動かないAPIがあり、フロントの人がPHP5.4でダミーサーバを書ける
- 手元のApacheにいちいちバーチャルホストを立てるのが面倒な
くらいのスポット仕事になる
- インストールの残骸がシステムに残らない
- .htaccessにmodが書けない
MacPortsのMySQLとの相性が問題で実行時にphp.iniで指定しないと
いけないときもある。
ビルトインサーバ用のスクリプトが書ければ、
URLをリライトするフレームワークでもおk
Apacheの設定なしでもブラウザで動かして試せる。
手持ちの開発環境がPHP5.3以下でも、ビルトインサーバを意識した
プロジェクトなら、mod_phpを書き換えずにPHP5.4を試せる。
TRAIT
- 親クラス以外からもメソッド実装を持ってこれる
- Rubyでいうとmixinに相当する
- ただしPHPのトレイトは、型階層(instanceofの結果)には影響しない
- 型の追加はインターフェイスに任せる。実装の追加はトレイトに任せる
コード分割その1
include/require
外部ファイルに関数やクラスを分けて書ける
HTMLを分けて下記、
外部ファイルで処理
ただし、クラスの外でしか書けない。
その2
継承
基本クラスをもとにして、足らない部分を実装する。
実用性を意識すると、OOPの「〜は〜の一種」モデルが
実際のありっさまには準拠しなくなり、システム主導となってしまう.
- .incファイルを作成する。
requireの書ける場所は「クラスの外」だけ。
traitでクラス内でも書けるようになった。
call_user_funcしなくてもメソッドをarrayで呼べる。
stringもarrayも見た目はクロージャそっくり。
is_callableでありさえすれば同じように扱える。
クロージャがなければ関数名やArrayでも代替可能
$this in closure
PHP5.3だと…
クロージャの中に$thisを使うとエラーになるらしい。
(回避策として一旦別変数で$thisを格納する。
5.4だと
クロージャの中でも$thisが使えるようになる。
もっとJavaScriptみたいなことが出来る
クロージャの$this掏り替えも可能
クロージャはもうcreate_functionの代わりではない
Javascriptのようにthisが文脈によって変化しうる。
クロージャの$thisはそのときどきで違ったりできる。
やりたいことの本質に全く同じコードで書けるのが嬉しい。
5.3では名前空間が使える。
- Phar(圧縮したライブラリが使える)
- PHP5.4の新機能は、便利なところからちょっとずつ使えばいいものばかり。
コマンドラインとビルトインサーバでつまみ食いをしてくれ。