開発サーバとローカルマシン間でファイルを自動的に同期する方法として、Vagrant の synced_folder を利用するのがモダンかつ定番になっています。
ただ、開発サーバがリモートに存在する場合はその方法は難しいですよね。
その場合の代替手法として、PHPStormにはFTP/SFTPサーバへ自動的にアップロードしてくれる機能があります。
しかも、PHPStorm上で編集したファイルだけでなく、SCSS+Compassによって吐き出されたcssファイルやGruntでビルドされたjavascriptファイルなどにも適用できます。
#実施環境
- Macbook Pro 15インチ
- Mac OS X 10.10 Yosemite
- PHPStorm 10
#まず、PHPStormでFTP/SFTPサーバを設定する
あらかじめFTPサーバの接続設定を行います。
環境設定 > Build, Execution, Deployment > Deployment を開きます。
リモートサーバのFTP情報を入力して[OK]ボタンをクリックします。
この時点ではファイルツリーから都度「Upload to...」を選択しなければアップロードされず、非効率です。
#自動FTP/SFTPアップロードの設定をする
PHPStorm上で編集したファイルと外部ツールによって更新されたファイルの両方を自動的にアップロードされるように設定します。
環境設定 > Build, Execution, Deployment > Deployment > Options を開きます。
###設定項目
- Upload changed files automatically to the default server : Always
- Upload external changes : on
1でAlwaysを設定しておくとファイル保存時とフォーカスが外れたときの両方でアップロードされます。
2でチェックボックスをオンにしておくとcompassやGruntなどの外部ツールが更新したファイルも自動アップロードの対象になります。
以上、2つの項目を設定したら[OK]ボタンをクリックします。
(この設定はプロジェクト毎にする必要があります)
ファイル保存をしたり、compassがcssを吐き出したりするとPHPStormがすぐさま検知して自動的にアップロードしてくれるようになります。
開発サーバがリモートにあるとは思えないくらいリアルタイムにファイル同期されるのでとても作業が捗り、この設定はとてもオススメです。