スポンサーサイト
一定期間更新がないため広告を表示しています
- 2014.12.23 Tuesday
- -
- -
- -
- -
- -
- by スポンサードリンク
一人で開発
開発機のOSはWindows7 professional(メモリが64GBというモンスターマシン^p^)
gitはmsysgit利用
主に使うフレームワークはsymfony1又はSymfony2 たまにwordpressとかcakeとか
visual c++等の自力でphp及びその拡張モジュールをビルドできる環境は無い
新規開発案件(PHP5.4/5.5)と保守案件(PHP5.3)を使い分けたい
開発に使うIDEはphpstorm
原則としてTDDするのでphpunitを使いたい(symfony1の場合はlime使う)
*プロジェクトルートをsynced_folderにする
*コードはホスト側のphpstormで書き、テストはゲスト側のコンソールで手動実行(作業中は、phpstormとmsysgitのGit Bashとvagrant sshの三窓を行ったり来たり)
*Symfony2のassets:installは常に--symlinkなしで使う
(*symfony1のplugin:publish-assetsはホスト側で実行する)
*composer installはゲスト側で実行(synced_folderでホスト側にも共有されてくるので、IDEはそれを参照できる)
*本番とのphpバージョン差異に悩まされることがなくなった
*windows版php特有の問題(strftimeのフォーマット文字列とか)に悩まされることがなくなった
*よく言われる速度問題はホスト側の超性能でカバーできてた(と、思う。特に速度で不満感じたことなし)
*jsやcssを更新したときにassets:installを手動実行するのが面倒 *シンボリックリンクが必須のバンドルが使えない
*プロジェクトルートをtype: "rsync"でsynced_folderとして指定
*ホスト側のwindowsはcwrsyncを利用してrsyncコマンドを使えるようにしておく
*.git .idea app/cache/* app/log/* bin vendor web/bundlesを:rsync__excludeに指定(assetic使う場合はweb/assetic web/js web/cssも除外した方が良いかも)
*利用するboxにもよるが、hashicorp/precise64の場合は、初回vagrant up時にいったんVagrantfile上のsynced_folder設定とprovision設定をコメントアウトし、ゲスト側rsyncのバージョンをホスト側rsyncのバージョンと合わせてから、synced_folder設定とprovision設定を再度有効化してvagrant reload --provisionを実行する
*作業中に必要なウィンドウがphpstormとmsysgitのGit Bashとvagrant sshの三窓から、rsync-auto専用のGit Bashも加えた四窓に増えた
*composer installはゲスト側のプロジェクトルートで実行後、--no-scriptつきでゲスト側の/vagrantでも実行する(IDEで補完を利用するために必要)
*シンボリックリンクが必須の一部のバンドルを使っていてもwindowsホストで問題なく開発できるようになった
*rsync-autoにしておくと、excludeにしているにも関わらず時々ゲスト側だけにあってホスト側にないファイル・ディレクトリ(vendorなど)が削除されてしまうことがある
Vagrant1.5.2以下でrsyncしたディレクトリのパーミッションがおかしい場合→https://github.com/mitchellh/vagrant/issues/3256
Vagrant1.5.2以下でrsyncがNo such file or directoryで失敗する場合→https://github.com/mitchellh/vagrant/issues/3230(4/21 12:40訂正1.5.3でも発生してました)