PhpStormでLaravel5快適開発 おさらい

Posted: 2015-02-01 00:12 |  laravel PHP全般 

みなさんPhpStorm使ってますか?
今回はそろそろ5が出るということもあり、Laravel開発で利用するにあたってPhpStormのおさらいです。
いいなぁ、と思った方はこれを機に乗り換えてしまいましょう!
今回はせっかくなので5にフォーカスします

▪️必須!Laravel IDE補完のための一歩

Laravelはマジックメソッドを利用して、
ファサードというサービスロケーターによる各コンポーネントへのアクセスを提供しているため、
IDEでは補完ができません。
このためLaravel IDE Helper GeneratorというLaravelパッケージを導入する必要があります。
この辺りは他のフレームワークを使っていた方は不自由だと感じるかもしれませんが、
これさえ入れてしまえばあとは快適です。
これはLaravelのデフォルトコンポーネントだけではなく、ユーザーが作ったファサードなども全て補完してくれます。
Eloquentを利用している方も補完してくれるますので、Laravelを使っている方は必須といえるものです。
導入方法は4も5もほぼ同じですが、5だけ取り上げます。

▪️Laravel5で導入

導入の仕方は同じですが、実行環境の指定方法が異なります。
"require-dev": {
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1",
    "mockery/mockery": "*",
    "barryvdh/laravel-ide-helper": "2.0@dev"
},
*現在はbarryvdh/laravel-ide-helperの2系のdevを指定してくれと書いてあるのでそうしてますが、
近いうちにstableになるはずです。


app/Providers配下に記述します。
どれに書いてもいいんですが、ConfigServiceProviderが設定関連だとわかりやすいのでそちらに書いておきましょう
下記のようになります。
namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ConfigServiceProvider extends ServiceProvider
{

    public function register()
    {
        if ($this->app->environment("local")) {
            $this->app->register('Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider');
        }
        config([
            //
        ]);
    }
}

▪️helperファイル作成

$ php artisan ide-helper:generate
helper用のファイルが作成されます。
helper作成コマンドをcomposer.jsonへ含めたり、お好みで利用しましょう!

▪️PhpStormでLaravel開発をはじめる

実際にはここに全部載ってますが、英語が苦手な方のために・・
Laravel Development using PhpStorm
helperを作成したのには、訳があります。
PhpStormでLaravelのプラグインがありますが、これがないと動きません!
標準でbladeに対応していますが、よりよい環境作りをするには導入しましょう!
Laravel Plugin
PhpStormからインストールします。

viewsのパスなどを指定します。パスを変更したりしてる方も安心です。

▪️router補完

routes.phpのRouteが補完できるようになります。

現在はRouteServiceProviderの protected $namespace = 'App\Http\Controllers';
まで見てくれていないので、namespaceを空にして利用するか、補完したあとに削除するかになりますが、
たぶんそのうち対応してくれると思います

▪️config補完

これもconfig配下からそれぞれ取得してくれます。

▪️ファサード補完

ファサードを利用する方はとてもありがたいですね
ユーザーが作成したものもすべて補完OKです。

phpdocも正しく書けばすべて表示してくれますので、きちんと書きましょう!
Contracts派の方は特になにもありません。

▪️blade補完




こんな感じで必要なものはすべて補完してくれます。
ただし現在はrouteの名前などは補完してくれません。
それでも現時点でここまでできれば十分でしょう!

▪️aritsan などのコマンドラインツール補完


コマンドラインツールの設定をすると、PhpStormのターミナルの他に
コマンドラインツールでaritsanコマンドも実行できます。
引数も表示してくれますので、あれなんだっけ・・・?って場合に非常に助かります。
ちなみにcomposerも補完できます。

▪️Eloquent補完

クエリービルダーなどはhelperさえあればすべて補完してくれますが、
Eloquentはなかなかそうはいきません。
だがしかし、doctrine/dbalをインストールして
$ php artisan ide-helper:models
をするだけです。

@propertyでカラムも補完が効きますので、捗りますね!

その他設定しておくと良い点

▪️XDebug

これはもうあたりまえですね

このようにソースがよく分からない・・という方でもすべてが丸見えになります。
設定方法はqiitaなどにもたくさんあるので設定しましょう。
各ブラウザのプラグインにXdebugに対応してるものがあるので合わせて入れましょう

▪️PHPUnit

これもあたりまえですが、設定しておきましょう!
composer配下に入れている方は下記のような感じに設定しておけばいいでしょう

メニューから実行したり好きなタイミングでいつでも実行できます

合わせて入れておくといいプラグインはPHPUnit code coverageです
PhpStormからインストールできます。
カバレッジが一目でわかります

phpunit.xmlに下記のように追記して、カバレッジを出力するように指定して、
プラグインの画面にならって設定するだけです。
    <filter>
        <whitelist>
            <directory>./app</directory>
        </whitelist>
    </filter>
    <logging>
        <log type="coverage-clover" target="build/logs/clover.xml"/>
    </logging>

設定が正しくないとカバレッジ偽100%になりますので、ちゃんと設定しておきましょう。
デフォルトのまま実行すると当然ですがプロジェクトディレクトリは真っ赤になります

▪️ディレクトリ関係

Project -> Directoriesで設定します
Sourcesでプロジェクトのnamespaceを入れておけば、ファイル作成時に挿入してくれます。
Excludedは検索から除外したいものなどを指定しておくといいですね。
laravel本体は含めるようにしておけばバッチリです。

Resource Rootもpublicなどに指定しておけば、js, cssのファイルパスや、
cssのスタイルも補完もしてくれます

▪️覚えておくといいもの

・検索

Shift 2回で調べたいものを入れるだけです

routes.php選ぶの面倒臭いなぁとか、ControllerなどいちいちソースをクリックしなくてOKです

・リファクタリング機能

command+N: ソースコード内で使うと、PHPDocの挿入やフィールドのgetterやsetterといったものを自動で作成してくれます

control+T: 選択した部分を他のファンクションとして定義したり、インターフェースに加えたり、フィールドを作ってくれたり
Laravelを利用した開発ではかなり利用すると思います

(mac環境なので他の環境の方はメニューなどをご覧ください)
ダイヤグラム: クラスの構造などを出力してくれます。継承してるものを調べたりするのに重宝するかもしれません。

ほかにもDBに直接繋いだり、いろいろ多数ありますが、全部書くと大変なのである程度絞ったものを挙げました。
PhpStormを使って快適Laravel開発を!

 

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014