人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

laravel-ide-helper を使用してVS CodeやPhpStormでコード補完させる

● laravel-ide-helper を使用する

次の2ステップの作業のみでVS CodeやPhpStormでコード補完(インテリセンス)が効くようになります。

● 1. laravel-ide-helperのインストール

https://github.com/barryvdh/laravel-ide-helper

composer require --dev barryvdh/laravel-ide-helper

2. モデルファイルに直接PHPDocを書き込む。

この方法が一番確実です。次のコマンドで実行できます。

Company modelにphpdocを直接書き込む

php artisan ide-helper:models "App\Models\Company" --write

すべてのモデルファイルのPHPDocに直接書き込む

php artisan ide-helper:models --write

● 3. 設定ファイルを出力する

Facade のコードの補完をできるようにする

こちらのコマンドを実行すると _ide_helper.php ファイルを生成します

php artisan ide-helper:generate

Model のプロパティ補完をできるようにする

こちらのコマンドを実行すると _ide_helper_models.php ファイルを生成します
モデルファイルの格納ディレクトリ を --dir で指定します

php artisan ide-helper:models -N --dir="app/Models"

以上でOKです。

● VS Code を使用している場合は、設定を変更する

1. PHP Intelephense を インストールする

2. PHPの基本言語サポートをオフにする

拡張機能を「@builtin php」で検索して「PHP言語機能」をオフにします
「PHPの基本言語サポート」はそのまま有効にしてください

● .gitignore に追加しておく

生成される2つのファイルは開発のファイルなので gitから除外しておきましょう

.gitignore

# ide-helperのファイルは除外する
/_ide_helper.php
/_ide_helper_models.php

参考 : https://qiita.com/PruneMazui/items/74034913bcd4af7a4eaf

● composer でエラーが出る場合

composer で何かしらのエラーが出る場合はファイル _ide_helper.php _ide_helper_models.php を削除してから Composer コマンドを実行します。 実行後に再度生成します。

それ以外にも便利な機能があります。

・laravel-ide-helperでモデルのDocBlock を自動生成する

# 全モデルのDocBlockを生成
php artisan ide-helper:models

# 特定のモデルのみ
php artisan ide-helper:models "App\Models\User"

# ファイルに直接書き込む(--writeオプション)
php artisan ide-helper:models --write

# 別ファイルに出力(デフォルト: _ide_helper_models.php)
php artisan ide-helper:models --nowrite

その他便利コマンド

# Facadeのヘルパー生成
php artisan ide-helper:generate

# PhpStorm用のメタファイル生成
php artisan ide-helper:meta

config ファイルを作成して設定を書き込む。

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

config/ide-helper.php

return [
    'model_locations' => [
        'app',
        // app/Models ディレクトリを追加する 
        'app/Models',
    ],
    
    'write_model_magic_where' => true,
    
    // ファイルに直接書き込むか、別ファイルに出力するか
    'write_eloquent_model_mixins' => true,
    
    // リレーションのヒントを追加
    'include_fluent' => true,
];

composer.json に自動実行を設定

"scripts": {
    "post-update-cmd": [
        "@php artisan ide-helper:generate",
        "@php artisan ide-helper:models --nowrite"
    ]
}

.gitignore に追加

別ファイルに出力する場合は、.gitignoreに追加:

_ide_helper.php
_ide_helper_models.php
.phpstorm.meta.php
No.2050
11/25 18:29

edit