ytake Hatena

Web Application Developer

HHVM/Hackはじめの一歩

phpの拡張として、魅了的な要素がたくさん詰まったHHVM/Hack

挿入を始めるにあたって、壁にぶち当たるのがphpstormなどの様な高機能なIDEがない、

などがあげられるかもしれません

IDEに代表される様な補完機能がなかなか効かないだったり、
typecheckerで既存のライブラリが動かない、なんてこともあるのかもしれません。

hhvm-autoload

github.com

HHVMでcomposerを最適化するプラグインとして動作するライブラリです

hhi

Hackで開発する場合、厳格な型指定はメリットであり、
アプリケーション開発時にはstrict指定をすることがほとんどだと思います。

<?hh // strict
// 厳格モード

ちなみにdeclにするとtype checkされません

<?hh // decl

*何も指定しない場合はパーシャルモードである程度はtype checkしますが、それ以上のことはしないモードです

厳格モードにした場合は、phpライブラリを流用する場合に型エラーが多く発生します。

その場合は、.hhconfigassume_php=false を記述するなどの方法があります。

Typechecker: Setup

この他にhhiファイルと呼ばれる実装が無い型宣言ファイルを作成し、strictで動作させる様にすることができます。

type scriptやflowを使って開発している方はイメージがつくと思います。

このファイルを使うことで、type checker(nuclideも)がphpのライブラリであってもスムーズに利用できる様になります。

*nuclideで補完が効かないと云う方は是非お試しください

PHPUnit

HackUnitなどもありますが、デファクトスタンダードでもあるPHPUnitを利用する機会の方が多いでしょう。

PHPUnitはHackの様な完全な厳格さはありませんが、91-carriage/phpunit-hhi を使うことでコード補完などが利用できます。

git.simon.geek.nz

Hackにのみ存在する様なコードをテストする場合は前述のHackUnitなどを使用しましょう。

なにもない状態でHackを使っている場合は
挙げたものを加えるだけで今までよりもスムーズに開発できる様になるでしょう!