PHPフレームワークLaravelを簡単に試せるようなHomesteadというVagrant上で動かす環境が公式に配布されています。
Homesteadを使ってLaravelで開発を行う際に、PHPStormというIDE使いたいときに設定すべき項目をまとめました。
PHPStormからリモートのファイルを修正する方法
リモートとは、ここではVagrantで動いているHomestead環境のこと。
手順
- New projectでプロジェクトを作成する際に表示されるダイアログに従う。リモートで開発する?とかきかれるので状況に沿った回答を行うことでよしなに設定できる。
- リモートで開発を選択すると、PHPStormにサーバを設定するためのパネルが表示される。
設定の詳細
- SFTP
- host 127.0.0.1
- port 2222
上記のような感じで設定する。host等の設定はvagrant ssh-config
で確認できる。
ローカルの修正をリモートに自動的に反映する
共有フォルダを使う方法(おすすめ)
in src/stubs/Homestead.yaml
folders:
- map: ~/dev/Projectname //ローカルのディレクトリ
to: /home/vagrant/projectName // vagrant上のディレクトリ
sites:
- map: homestead.app // ローカルでここにアクセスすると
to: /home/vagrant/projectName/public // リモートではここのindex.phpが読み込まれるっぽい
共有フォルダを使わない方法
Tool > Deployment > Automatic upload
にチェックを入れる。こうするとローカルでファイルを保存すると自動的にサーバーにアップロードするようになる。
リモートの最新版を勝手に上書きしないようにする
Deployment > Options
のWarn when uploading over newer file
を適当に変更(内容比較 or 更新時間比較が選択可能)。
Notify about remote changes
にチェックを入れる
参考:【PHPStotm】FTPのアップロード・同期化の設定 | お仕事募集中
補完を有効にする
PHPStormは素のままだとLaravel独自のメソッドなどを補完できなくてしんどいのでできるようにする。
Facadeのメソッドの補完を有効にする
できるようになること
ytake.blog | PhpStormでLaravel5快適開発 おさらいを参考のこと。
手順
barryvdh/laravel-ide-helperの通りにComposerを使って導入する。Composerはライブラリの依存性を解決してくれるツールである(詳しくはPHPの依存関係管理ツール Composer | ララ帳を参考のこと。)
書かれている手順どおりにコマンドを叩き、設定ファイルへの記述を行う。プロジェクト内の設定ファイルはIDEが自動的に読み込むので特別な設定は不要。
IoCコンテナからのオブジェクトの種類を推定してメソッドを補完する
事前知識:IoCコンテナとは
DIコンテナのこと。簡単にDIできる。DIについて初耳の人はPHPでDI(Dependency Injection)などを参照のこと。
IoCコンテナの具体例はLaravel IoC コンテナの使い方 - Shin x blogを参考のこと。
できるようになること
It's possible to generate a PhpStorm meta file, to add support for factory design pattern. For Laravel, this means we can make PhpStorm understand what kind of object we are resolving from the IoC Container. For example, events will return an Illuminate\Events\Dispatcher object, so with the meta file you can call app('events') and it will autocomplete the Dispatcher methods.
引用元:New: PhpStorm Meta for Container instances
PHPStormのメタファイルを作成することで解決する。メタファイルを作成すると、ファクトリーデザインパターンをPHPStorm側でサポートできる。LaravelでIoCコンテナからのオブジェクトの種類をPHPStormが理解することができるようになる。例えばevents
はIlluminate\Events\Dispatcher
オブジェクトを返すのだが、メタファイルがあればapp('events')
を呼び、Dispatcher
オブジェクトのメソッドを補完することができる。
手順
php artisan ide-helper:meta
プロジェクト内に.phpstorm.meta.php
が生成され、自動的にPHPStormがロードする模様。
コード整形を自動化する
Reformat Code
をPSR-2準拠にする
PHPのコーディング規約にPSRというものがあるのでそれに自動的に従うようにする。
設定> Code Style
>Set from
でPSR1/PSR2を選択。これでReformat Code
をした時の挙動を変えることができる。
Saveした時に自動的にPSR-2準拠にする
Cmd+s
を押した時にフォーマットと保存を行うような設定をします。
- デフォルトの保存のキーボードショートカットを適当に置き換える
- Settings > Keymapを選択する。
-
Save All
のショートカットを適当なものに置き換える。私はAlt+Cmd+s
にしました。
- コードフォーマットと保存を行うマクロを生成する
- Edit > Macros > Start Macro recording を選択する。
-
Cmd+Alt+l
(Reformat Code
のショートカット)→Alt+Cmd+s
(手順1で決めたSave All
のショートカット)の順番に押す。 - 赤いStopボタンを押し、レコードを中断する。
- ダイアログが表示されるので、マクロに名前をつける(Reformat and Saveにしました)。
-
Cmd+S
にマクロを割り当てる
- Settings > Keymapを選択する。
- Reformat and Saveを探し、
Cmd+s
を割り当てる
これで保存したとき勝手にリフォーマットがかかります✌('ω')✌
なお、デフォルトでは当該ファイル全体にリフォーマットがかかりますが、Shift+Alt+Cmd+l
でもう少し細かく指定ができるみたいです。