LoginSignup
22
24

More than 5 years have passed since last update.

PHPStormをつかってLaravel5のHomesteadで開発を行うための準備

Last updated at Posted at 2015-07-24

PHPフレームワークLaravelを簡単に試せるようなHomesteadというVagrant上で動かす環境が公式に配布されています。
Homesteadを使ってLaravelで開発を行う際に、PHPStormというIDE使いたいときに設定すべき項目をまとめました。

PHPStormからリモートのファイルを修正する方法

リモートとは、ここではVagrantで動いているHomestead環境のこと。

手順

  1. New projectでプロジェクトを作成する際に表示されるダイアログに従う。リモートで開発する?とかきかれるので状況に沿った回答を行うことでよしなに設定できる。
  2. リモートで開発を選択すると、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 > OptionsWarn 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が理解することができるようになる。例えばeventsIlluminate\Events\Dispatcherオブジェクトを返すのだが、メタファイルがあればapp('events')を呼び、Dispatcherオブジェクトのメソッドを補完することができる。

手順

php artisan ide-helper:meta

プロジェクト内に.phpstorm.meta.phpが生成され、自動的にPHPStormがロードする模様。

コード整形を自動化する

Reformat CodeをPSR-2準拠にする

PHPのコーディング規約にPSRというものがあるのでそれに自動的に従うようにする。

スクリーンショット 2015-07-24 11.52.51.png

設定> Code Style>Set fromでPSR1/PSR2を選択。これでReformat Codeをした時の挙動を変えることができる。

Saveした時に自動的にPSR-2準拠にする

Cmd+sを押した時にフォーマットと保存を行うような設定をします。

  1. デフォルトの保存のキーボードショートカットを適当に置き換える

    • Settings > Keymapを選択する。
    • Save Allのショートカットを適当なものに置き換える。私はAlt+Cmd+sにしました。
  2. コードフォーマットと保存を行うマクロを生成する

    • Edit > Macros > Start Macro recording を選択する。
    • Cmd+Alt+lReformat Codeのショートカット)→Alt+Cmd+s(手順1で決めたSave Allのショートカット)の順番に押す。
    • 赤いStopボタンを押し、レコードを中断する。
    • ダイアログが表示されるので、マクロに名前をつける(Reformat and Saveにしました)。
  3. Cmd+Sにマクロを割り当てる

    • Settings > Keymapを選択する。
    • Reformat and Saveを探し、Cmd+sを割り当てる

これで保存したとき勝手にリフォーマットがかかります✌('ω')✌
なお、デフォルトでは当該ファイル全体にリフォーマットがかかりますが、Shift+Alt+Cmd+lでもう少し細かく指定ができるみたいです。

参考

22
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
24