PHP の開発環境
p0t さんのPHPどうやって開発してる? というエントリで PHP の開発環境について触れられていたので、自分の開発環境についてまとめてみました。
私の場合はメインの環境が Mac OS X なので、p0t さんの分類における Type D の構成で開発をしています。日常の開発で使用するソフトウェアはだいたい以下の通り。
- Carbon Emacs パッケージ
- php-mode(上記の Caron Emacs パッケージにも同梱されている)
- zsh(DarwinPorts のパッケージを利用)
- screen(DarwinPorts のパッケージを利用)
- php 5.1.x
- PHPUnit2
- lighttpd
Carbon Emacs で PHP のソースコードを編集する際は php-mode に加えて、 php-electric.el というマイナーモードも利用しています。php-electric.el は ruby のソースアーカイブに含まれている misc/ruby-electric.el を PHP 向けに書き換えたものです(中身は括弧やクォートの自動対応くらいしか残っていませんけど)。
よほど特殊な運用環境が必要にならない限り、動作確認&デバッグはローカルの lighttpd で行います。lighttpd を使う理由は軽快さとバーチャルドメイン設定の容易さ。 開発中は、プロジェクト毎に /etc/hosts に
127.0.0.1 project1
といったエントリを追加し、バーチャルドメイン機能を使って http://project1/ でプロジェクト毎のドキュメントルートにアクセスできるようにしています。
ユニットテストは基本的にすべてのクラスについて行います。 正規表現やビルトイン関数の使い方をチェックしたい時は小さなスクリプトを 書いて、シェルから CLI 版の php コマンドを起動して確認します。 デバッガの類は一切使っていません(eAccelerator のスタックトレースは使う)。
以上を踏まえた私の PHP 開発手順は以下のようになります。
- Emacs でテストケースを書く
- phpunit コマンドでテスト実行→失敗
- Emacs でクラスを書く
- phpunit コマンドでテスト実行→成功
- フロントコントローラとなるスクリプトを書く(フレームワークを利用する場合はここは省略)
- lighttpd にプロジェクトのバーチャルドメイン設定を追加
- lighttpd で動作確認

