前回に引き続き、今度はphp関連の開発環境を構築してみました。
まるで環境構築マニアみたいですが、phpはちょっと必要に駆られてなので…
本末転倒ですが別にエディタでもいいとは思います。
めんどいし。
もっというとXAMPPじゃなくて個別にインストールしたほうが
後々いいかもしれません。なんとなく。
だってどうせサーバ上ではXAMPPじゃないでしょ。
とはいうもののPHP書いたこと無いし、vimさんだけで生きて行けるほど強くないし、
IDE無いとミスっていることにすら気が付かないし(ぇ
◯以下をとりあえずDL
PDTはプラグインだけでもOKですが、
なんとなくこれ以上プラグインを追加したくなかったので、
All IN One (eclipse-php?)を落としました。
XAMPPは上記サイトに従って動作確認までは余裕かと。
◯XAMPP上にPHPUnitをインストール
とりあえず以下をターミナルで実行
パスからも想像出来るようにルート権限必要です。
#cd /Applications/XAMPP/xamppfiles/bin
#sudo ./pear upgrade-all
#sudo ./pear channel-discover pear.phpunit.de
#sudo ./pear install phpunit/PHPUnit
インストールされている気配が無かったので再度実行
#sudo ./pear install phpunit/PHPUnit
Unknown remote channel: pear.symfony-project.com
と出たので
#sudo ./pear channel-discover pear.symfony-project.com
#sudo ./pear install phpunit/PHPUnit
#./phpunit --version
バージョン表記されてメデタシ(2011年11月15日 3.6.3でした)
依存関係をまとめてinstallできるpearのコマンドオプションがあった気がするけど
メモ忘れました…
◯XAMPP上にtestrunner
#cd /Applications/XAMPP/xamppfiles/bin
#sudo ./pear channel-discover pear.piece-framework.com
#sudo ./pear install piece/stagehand_testrunner
◯ /Applications/XAMPP/xamppfiles/bin にパスを通す
先にやればよかった…
◯他
またDB関連もテストするなら下記も入れておくといいかも
#sudo pear install phpunit/DbUnit
http://www.phpunit.de/manual/3.6/ja/database.html
◯PDT関連
makegood追加(help → install new software)
http://eclipse.piece-framework.com/
-clean で再起動
◯これは正直いいのかわかんない
- /Applications/XAMPP/xamppfiles/htdocs に書き込み権限を付与する
- もしくは/Applications/XAMPP/xamppfiles/etc/httpd.confを書き換える
PDT使ってPHP作ってローカルで動作確認したいのに、
当たり前といえば当たり前なんだけど、/Applications/XAMPP以下が軒並み読取り専用です。
結果としてリンク先にあるように最初から準備されているドキュメントルートに、
Eclipseがファイル配置出来なかったりします。
なので、httpd.confをいじって適当な場所にドキュメントルートを移動させるか、
最初から配置されている場所に書き込めるようにするかの2択だと思います。
ちなみに後者のhttpd.confを弄ってちゃんとうまく動くかは確認していません。
そして本当に読取り専用じゃなくしてしまっていいのかは知りませんw
まあ一番最初にpear実行段階で管理者権限でファイルイジりまくっているから
いいっちゃいいんでしょうけど…
なおeclipse-phpのPreferences → PHP → PHP Server → Edit Server に
Path Mapping ってあるんですけど、これうまく動いている気がしない。
これが動けば別にどこに配置したっていいんでしょうけどねぇ…
◯とりあえず作ってみる
まず悩みながら下記パスにワークスペースを作成
新規作成→PHPプロジェクト→hellophp.php / hellophpTest.phpを作成
環境設定でpearの設定を入れておく
(多分php.iniとかにinclude_pathを追加で指定しても一緒)
一応マニュアルを日本語のURL指定にしてみる。
まあしたんだけど英語しか出ないのはなぜなんだろ…
phpのパス指定
以下「個別プロジェクト」で設定
phpunit.xmlは指定しなくてもOK
下のテストフォルダの追加を忘れずに
include pathにさっき追加したpearを追加
上記で設定は終わり
hellophp.php
hellophpTest.php
assertEquals("hoge", $hello->hoge());
}
}
?>
phpunit.xml
んで右クリック→すべてのテストを実行すると
やった!グリーンだね!
ちなみにこやつは設定次第では保存時に毎回全テストを実行してくれるので、
知らず知らずのうちにデグレが避けれる?
まあなんかうざい時もあるけど、ちょっとしたCI気分が味わえます。
なお、phpunit.xmlを上記のように設定していると
テスト完了後に指定したパス(ここでは/tmp/hello_report)以下にコードカバレッジ結果も。
phpunit.xmlは色々と設定ができそうで面白そうです。
Jenkinsなんかと合わせ安いんじゃなかろうか。
Jenkins使ったこと無いんで想像で書いてますが。そして使ってみたいけど…
上記を抜けなくやったのに、テストが実行されない場合は
一旦eclipse-phpを再起動するとなぜか動く場合も…
その前にコマンドラインでPHPUnitが使用可能かは確認してもいいかも。
まあこんだけやったけど、俺がPHPを書くのって多分今だけな気がする…
(
てかなんでPHP書く事になったんだっけ…)