Heim > PHP-Framework > Laravel > Hauptteil

Teilen Sie Laravel's super einfach zu bedienendes Programm-Eingabeaufforderungstool Laravel IDE Helper

藏色散人
Freigeben: 2021-07-02 09:00:14
nach vorne
1989 Leute haben es durchsucht

安装

安装 larave-ide-helper

# 如果只想在开发环境  
安装请加上 --dev  
composer require barryvdh/laravel-ide-helper
Nach dem Login kopieren

安装 doctrine/dbal 「请装上它,在为模型注释字段的时候必须用到它」

# 如果只想在开发环境安装请加上 --dev  
composer require "doctrine/dbal: ~2.3"
Nach dem Login kopieren

在 「config/app.php」的 「providers」数组中加入

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
Nach dem Login kopieren

如果你的 Laravel 版本小于 5.5 「如果没记错」的话,请注册服务提供者,否则请忽略

如果你只在开发环境中安装「larave-ide-helper」,那么可以在「app/Providers/AppServiceProvider.php」的「register」方法中写入下面代码:

public function register()  
{  
    if ($this->app->environment() !== 'production') {  
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);  
    }  
    // ...  
}
Nach dem Login kopieren

导出配置文件(如果默认配置就满足需求了,也可以忽略这一步)

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
Nach dem Login kopieren

好了,接下去可以愉快的使用了

使用

php artisan ide-helper:generate - 为 Facades 生成注释

php artisan ide-helper:models - 为数据模型生成注释

php artisan ide-helper:meta - 生成 PhpStorm Meta file

自动为 Laravel 的 Facades 生成注释

在命令行下运行

php artisan ide-helper:generate
Nach dem Login kopieren
  • 注:如果存在文件 「bootstrap/compiled.php」 需要先删除, 可以在生成文当前运行 php artisan clear-compiled。

自动为模型生成注释

为所有模型生成注释 php artisan ide-helper:models, 这时会出现询问:

Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead? (Yes/No):  (yes/no) [no]:
Nach dem Login kopieren

输入 yes 则会直接在模型文件中写入注释,否则会生成「_ide_helper_models.php」文件。建议选择 yes,这样在跟踪文件的时候不会跳转到「_ide_helper_models.php」文件,不过这么做最好对模型文件做个备份,至少在生成注释之前用 git 控制一下版本,以防万一。

  • 提示: 为模型生成字段信息必须在数据库中存在相应的数据表,不要生成 migration 还没运行 migrate 的时候就生成注释,这样是得不到字段信息的。

自动为链式操作注释

这是什么意思呢?举个例子,在 migration 文件中经常可以看见这样的代码:

$table->string('email')->unique();
Nach dem Login kopieren

这时候就算调用过了 php artisan ide-helper:generate,在调用像 ->unique() 这样的链式操作的时候也无法实现代码提示,这时候需要将配置文件「如果导出的话」'include_fluent' => false 修改为 'include_fluent' => true,重新运行 php artisan ide-helper:generate。试试效果吧!

生成 .phpStorm.meta.php

可以生成一个 PhpStorm meta 文件去支持工厂模式。对于 Laravel, 这意味着我们可以让 PhpStorm 理解我们从 IoC 容器中解决了什么类型的对象。例如:事件将返回一个「IlluminateEventsDispatcher」对象,利用 meta 文件您可以调用 app ('events') 并且它将自动完成 Dispatcher 的方法。

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 name  
app('App\SomeClass');  
提示:您可能需要重启 Phpstorm 使 .phpStorm.meta.php 文件生效。  
自动运行 generate
Nach dem Login kopieren

想在依赖包更新是自动更新注释,可以在 composer.json 文件中做如下配置:

"scripts":{  
    "post-update-cmd": [  
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",  
        "php artisan ide-helper:generate",  
        "php artisan ide-helper:meta"  
    ]  
}
Nach dem Login kopieren

提示:如果只在 dev 环境下部署 ide helper 还是不要这么做了,防止在生产环境中报错导致不必要的麻烦。

结尾

整个使用大概就是这样了,其实在 Laravel 5.5 以上版本只需要装上 "larave-ide-helper" 和 "doctrine/dbal: ~2.3" 这两个包,不用做什么配置就可以愉快的玩耍了。

如发现文中错误,请!斧!正!

Das obige ist der detaillierte Inhalt vonTeilen Sie Laravel's super einfach zu bedienendes Programm-Eingabeaufforderungstool Laravel IDE Helper. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage