ホームページ > バックエンド開発 > PHPチュートリアル > Laraval IDE オートコンプリートアシスタント: Laravel IDE Helper Generator

Laraval IDE オートコンプリートアシスタント: Laravel IDE Helper Generator

WBOY
リリース: 2016-06-20 12:29:16
オリジナル
1186 人が閲覧しました

1. はじめに

この拡張パッケージは、正確なオートコンプリートを提供するために IDE が理解できるファイルを生成できます。関数 。この生成されたファイルはプロジェクト内に存在するファイルに基づいているため、常にライブ状態になります。もちろん、このファイルを手動で生成したくない場合は、事前に生成されたファイルを使用してプロジェクトのルート ディレクトリに置くこともできます (これらのファイルはリアルタイムではありません)。

  • Larval 5: https://gist.github.com/barryvdh/5227822
  • ルーメン: https://gist.github.com/barryvdh/be17164b0ad51f832f20
  • PHPStorm メタ ファイル: https: //gist.github.com /barryvdh/bb6ffc5d11e0a75dba67

注: Laravel 4.x については、ここを参照してください。

2. インストール

次の Composer コマンドを使用して拡張パッケージ関連の依存関係をインストールします。

composer require barryvdh/laravel-ide-helper
ログイン後にコピー

インストール後これが完了したら、app/config.php のプロバイダー オプションでサービス プロバイダーを登録する必要があります。

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
ログイン後にコピー

3. Laravel ポータルに対応する phpDoc を自動的に生成します

この拡張パッケージを使用する前に、おそらく多くの人が PHPStorm を使用するときにファサードを自動的に完了できないという問題に遭遇したことがありますが、Laravel IDE Helper Generator が私たちに朗報をもたらしました。次のコマンドを使用して、ファサード完了情報を含むファイルを生成します:

php artisan ide-helper:generate
ログイン後にコピー

注: この前に bootstrap/compiled.php をクリアする必要があるため、phpArtisan Clear-compiled を実行する必要があります。生成する前に phpArtisanoptimize を実行します。

後の便宜のために、composer.json ファイルで次の構成を行うこともできます:

"scripts":{    "post-update-cmd": [        "php artisan clear-compiled",        "php artisan ide-helper:generate",        "php artisan optimize"    ]},
ログイン後にコピー

また、構成ファイルを公開してデフォルトの実装を変更することもできます:

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
ログイン後にコピー

ジェネレーターは実際のクラスを見つけようとしますが、見つからない場合は、構成ファイルで定義できます。

一部のクラスではデータベース接続が必要です。対応するデータベース接続がないと、一部のファサードが含まれない場合があります。

どのヘルパー関数ファイルを含めるかを選択できます。このオプションはデフォルトでは有効になっていませんが、--helpers オプションを使用してデフォルトの設定をオーバーライドできます。 Illuminate/Support/helpers.php がデフォルトで導入されます。もちろん、設定ファイルにカスタム ヘルパー関数ファイルを追加することもできます。

4. モデルに対応する phpDoc を自動的に生成

この機能を使用する前に、doctrine/dbal をインストールする必要があります: ~2.3:

composer require doctrine/dbal
ログイン後にコピー

モデル属性を自分で書きたくない場合は、php 職人 ide-helper:models コマンドを使用して、データ テーブルのフィールド、リレーションシップ、およびゲッター/セッターに基づいて対応する phpDoc を生成できます。 --write (-W) オプションを渡すと、モデル ファイルにコメントを書き込むことができます。デフォルトでは、_ide_helper_models.php を上書きするか、別のファイルを作成する必要があります。変更せずに --nowrite (-N) を渡すこともできます。 。上書きや書き換えではなく、既存のものを保持し、新しいプロパティとメソッドを追加するだけなので、続行する前にモデル ファイルをバックアップする必要があることに注意してください。 phpdoc がすでに存在する場合は置き換えられます。それ以外の場合、--reset (-R) オプションを使用して追加すると、既存の phpdoc は無視され、新しいフィールド/リレーションシップが保存されます。

php artisan ide-helper:models Post
ログイン後にコピー

このコマンドは、ルート ディレクトリにファイル _ide_helper_models.php を生成します。

/** * An Eloquent Model: 'Post' * * @property integer $id * @property integer $author_id * @property string $title * @property string $text * @property \Carbon\Carbon $created_at * @property \Carbon\Carbon $updated_at * @property-read \User $author * @property-read \Illuminate\Database\Eloquent\Collection|\Comment[] $comments */
ログイン後にコピー

デフォルトでは、app/models 内のモデルが走査されます。次のメソッドを使用して、どのモデルが使用されているかを確認できます。

php artisan ide-helper:models Post User
ログイン後にコピー

を参照することもできます。 --dir オプション 追加のディレクトリ (ルート パスに基づく):

php artisan ide-helper:models --dir="path/to/models" --dir="app/src/Model"
ログイン後にコピー

設定ファイル (php 職人のベンダー:publish) を公開し、デフォルトのディレクトリを設定することも可能です。

モデルは --ignore (-I) オプションを使用して無視できます:

php artisan ide-helper:models --ignore="Post,User"
ログイン後にコピー

モデル名は名前空間でラップできます: phpArtisan ide-helper:models "APIUser"

5. PHPStorm のコンテナ インスタンスに対応する Meta

は、Laravel の場合、PHPStorm メタ ファイルを生成して、PHPStorm に理解させることができることを意味します。 from IoCコンテナから取り出したオブジェクトタイプ。たとえば、イベントは IlluminateEventsDispatcher オブジェクトを返すため、メタ ファイルを通じて app('events') を呼び出すと、対応するディスパッチ メソッドが自動的に完了します。

php artisan ide-helper:meta
ログイン後にコピー

は、ルート ディレクトリに .phpstorm.meta.php ファイルを生成します。

app('events')->fire();\App::make('events')->fire();/** @var \Illuminate\Foundation\Application $app */$app->make('events')->fire();// When the key is not found, it uses the argument as class nameapp('App\SomeClass');
ログイン後にコピー

事前に構築された例: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67

注: .phpstorm を確実にするには、PHPStorm を再起動する必要がある場合があります。 meta.php のインデックスが作成されました。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート