最近イチオシの php-buildphpenv について紹介してきました.

内容はほぼ最近のブログ記事をまとめた感じです.

一度ブログに書いたものを敢えて発表ネタにしたのにはいくつか理由があります.
(もちろん, 一度記事にまとめたネタなのでスライドに起こしやすい, というのもありますが…)

  • もっと色んな人に知って欲しい
  • もっといろんな人に使って欲しい
  • まだまだこなれていない部分があり, フィードバックが必要
  • フィードバックやパッチによりもっと改善されるはず

というわけで皆さんどんどん使いましょう.

類似のツールについて

php-build および phpenv と類似の機能をもったツールは他にもあります.
勉強会でも, 例えば phpall とはどう違うのか, という質問がありました.

結論から言うと, 私は他のツールは特に使ったことが無いのでよくわかりません.
ですが, もともと rbenv は Ruby コミュニティではかなり人気のツールですし, 便利な機能はいろいろと揃っており, 比較的失敗の無い選択肢だと考えています.

また, phpall の違いとして, phpall は各バージョンのバイナリをそれぞれ php-5.2.8 といった, バージョン番号付きのファイル名にしているようですが, phpenv は php コマンド自体を自由に切り替えます.
特定のコードを複数のバージョンで一気に実行する, というときには phpall が便利そうですが, ライブラリの開発等には phpenv の方が適していると思われます.
また, phpenv においては pyrus, phar, phpunit といったコマンドも各バージョンごとに試すことができる, というのも大きな利点です.

phpenv のプラグイン機能について

元々, これまでのブログ記事をまとめただけの発表にするつもりでしたが, ひとつだけおもしろい機能を見つけたので, そこだけ新ネタです.
phpenv の元になっている rbenv にはプラグインという機能があり, 専用のディレクトリにシェルスクリプトを配置するだけで簡単にサブコマンドを登録できる, というものです.
当然 phpenv でも使える機能です.

phpenv each によるコマンドの一斉実行

rbenv のプラグインとして公開されているものの中で, とりあえず rbenv-each というものをつかってみました.
これは rbnev (もしくは phpenv) の管理下にある全てのバージョンのバイナリで, 指定したコマンドを実行する, というものです.

とりあえず, php -v によるバージョンの確認を試してみました.

phpenv each によるバージョンの一斉確認

phpenv each によるバージョンの一斉確認

これ自体はあまり意味の無い例ですが, 例えば PHPUnit によるユニットテストを, 複数のバージョンの PHP で一斉に実行できるすれば, ライブラリ作者に取ってはかなり便利なのではないでしょうか.
それについてはいずれ調べて, また記事にしたいと思います.

このように, php-buildphpenv にはまだまだ便利な使い方がたくさんあるはずです.
利用者が増えることで, そういったノウハウが発掘され, 共有されることを心から願います.

最後になりますが, 今回の勉強会の主催の @gusagi さん, そして会場提供の株式会社 VOYAGE GROUP さん, 楽しい勉強会を本当にありがとうございました.

, ,
Trackback

3 comments untill now

  1. [...] 第57回PHP勉強会@東京で開発環境構築について話して来た [...]

  2. phpenv+php-build周りの情報非常に助かっています。
    Apacheモジュールはどういう運用されていますか?
    php-buildのGithubリポジトリには「今後」対応しそうな雰囲気がありますが。
    php-buildにconfigureオプション渡せればいいのですが。

  3. [...] 引用元: 第57回PHP勉強会@東京で開発環境構築について話して来た   [...]

Add your comment now