Table des matières
1、简介
2、安装
3、自动生成Laravel门面对应的phpDoc
4、自动生成模型对应的phpDoc
5、PHPStorm中容器实例对应的Meta
Maison développement back-end tutoriel php Laraval IDE 自动补全助手:Laravel IDE Helper Generator 

Laraval IDE 自动补全助手:Laravel IDE Helper Generator 

Jun 20, 2016 pm 12:29 PM

1、简介

该扩展包可以生成一个IDE可以理解的文件,以便提供精准的自动补全功能。这个生成的文件基于项目中存在的文件,所以永远是实时的。当然如果你不想手动生成这个文件,也可以使用预生成的文件并把它们放到项目根目录下(这些文件就没有那么实时了):

  • Larval 5: https://gist.github.com/barryvdh/5227822
  • Lumen: https://gist.github.com/barryvdh/be17164b0ad51f832f20
  • PHPStorm Meta 文件: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67

注:Laravel 4.x请参考 这里 。

2、安装

我们使用如下Composer命令安装扩展包相关依赖:

composer require barryvdh/laravel-ide-helper
Copier après la connexion

安装完成后我们需要到app/config.php的providers选项中注册服务提供者:

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
Copier après la connexion

3、自动生成Laravel门面对应的phpDoc

在使用这个扩展包之前,或许不少人已经碰到了使用PHPStorm不能自动补全门面(Facade)的问题,现在Laravel IDE Helper Generator 为我们带来了福音。我们使用如下命令生成包含门面补全信息的文件:

php artisan ide-helper:generate
Copier après la connexion

注意:在此之前需要清除 bootstrap/compiled.php ,所以生成之前需要先运行 php artisan clear-compiled 然后运行 php artisan optimize 。

为了后续方便,你也可以在 composer.json 文件中作如下配置:

"scripts":{    "post-update-cmd": [        "php artisan clear-compiled",        "php artisan ide-helper:generate",        "php artisan optimize"    ]},
Copier après la connexion

还可以发布配置文件以修改默认实现:

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
Copier après la connexion

生成器会尝试定位真正的类,如果找不到,可以在配置文件中定义。

有些类需要数据库连接,如果没有相应的数据库连接,某些门面可能无法包含进来。

你可以选择要包含的辅助函数文件,默认该选项并未开启,但是你可以通过 --helpers 选项覆盖默认配置。默认会引入 Illuminate/Support/helpers.php ,当然你还可以在配置文件中添加自定义的辅助函数文件。

4、自动生成模型对应的phpDoc

在使用本特性之前,需要先安装 doctrine/dbal: ~2.3 :

composer require doctrine/dbal
Copier après la connexion

如果你不想自己编写模型属性,可以使用 php artisan ide-helper:models 命令来基于数据表字段、关联关系以及getters/setters生成对应的phpDoc。你可以通过 —write(-W) 选项来编写模型文件的注释,默认情况下,你需要覆盖或新建一个单独的文件 _ide_helper_models.php ,你也可以通过 —nowrite(-N) 不做更改。需要注意的是在进行操作之前需要备份模型文件,因为我们要保留之前已存在的,只是追加新属性和方法,而不是覆盖和重写。phpdoc已存在会被替换,否则新增,通过 —reset(-R) 选项,已存在的phpdoc会被忽略,新增的字段/关系才会被保存。

php artisan ide-helper:models Post
Copier après la connexion

该命令会根目录下生成文件 _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 */
Copier après la connexion

默认情况下,app/models中的模型会被遍历,可以使用如下方式告诉哪些模型被使用:

php artisan ide-helper:models Post User
Copier après la connexion

还可以通过 --dir 选项浏览一个其他目录(基于根路径):

php artisan ide-helper:models --dir="path/to/models" --dir="app/src/Model"
Copier après la connexion

也可以发布配置文件( php artisan vendor:publish )并设置默认目录。

可以使用 —ignore(-I) 选项来忽略模型:

php artisan ide-helper:models --ignore="Post,User"
Copier après la connexion

可以通过命名空间包裹模型名称: php artisan ide-helper:models "API\User"

5、PHPStorm中容器实例对应的Meta

可以生成一个PHPStorm meta文件来添加工厂设计模式支持,对Laravel而言,这意味着我们可以让PHPStorm理解从IoC容器中取出的对象类型。例如, events 会返回 Illuminate\Events\Dispatcher 对象,因此通过meta文件你可以调用 app('events') 然后它会自动补全对应的调度方法。

php artisan ide-helper:meta
Copier après la connexion

会在根目录下生成 .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');
Copier après la connexion

预生成示例: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67

注意:你可能需要重启PHPStorm以确保 .phpstorm.meta.php 被索引。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio

See all articles