Phpstorm 开启 Laravel 代码提示

 前言

今天在写项目的时候,感觉没有代码提示特别不爽,而且也容易出错,耗时耗力。遂找了一波关于laravel代码提示及补全工具,发现网上的文章都是通过barryvdh/laravel-ide-helper这个包生成的,我就自己配置了一下 ,感觉舒服了不少。但是还是有一个问题,就是每个项目里都得引用一下这个包,然后通过php artisan去生成提示文件,虽然可以通过.gitignore去让提交的时候忽略掉提示文件,但是每个项目都要这么走一遭,感觉比较鸡肋,所以就研究了一下Phpstorm的ide配置方法,发现可行,遂分享给大家。

 生成ide_helper文件

➜  test_demo composer require barryvdh/laravel-ide-helper
Using version ^2.6 for barryvdh/laravel-ide-helper
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 14 installs, 0 updates, 0 removals
  - Installing doctrine/event-manager (v1.0.0): Downloading (100%)         
  - Installing doctrine/cache (v1.8.0): Downloading (100%)         
  - Installing doctrine/dbal (v2.9.2): Downloading (100%)         
  - Installing composer/xdebug-handler (1.3.3): Downloading (100%)         
  - Installing composer/spdx-licenses (1.5.2): Downloading (100%)         
  - Installing symfony/filesystem (v4.3.5): Downloading (100%)         
  - Installing justinrainbow/json-schema (5.2.9): Downloading (100%)         
  - Installing seld/phar-utils (1.0.1): Downloading (100%)         
  - Installing seld/jsonlint (1.7.1): Downloading (100%)         
  - Installing composer/semver (1.5.0): Downloading (100%)         
  - Installing composer/ca-bundle (1.2.4): Downloading (100%)         
  - Installing composer/composer (1.9.0): Downloading (100%)         
  - Installing barryvdh/reflection-docblock (v2.0.6): Downloading (100%)         
  - Installing barryvdh/laravel-ide-helper (v2.6.5): Downloading (100%)         
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
barryvdh/reflection-docblock suggests installing dflydev/markdown (~1.0)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-ide-helper
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

修改config/app.php中的providers增加Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Notifications\NotificationServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        /*
         * Package Service Providers...
         */
        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        ...
        Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
    ],

php artisan vendor:publish 

➜  test_demo php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config
Copied File [/vendor/barryvdh/laravel-ide-helper/config/ide-helper.php] To [/config/ide-helper.php]
Publishing complete.

php artisan ide-helper:generate

➜  test_demo php artisan ide-helper:generate
A new helper file was written to _ide_helper.php

此时生成的_ide_helper.php在项目根目录下面

➜  test_demo tree -L 1
.
├── _ide_helper.php
├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── config
├── database
├── package.json
├── phpunit.xml
├── public
├── resources
├── routes
├── server.php
├── storage
├── tests
├── vendor
├── webpack.mix.js
└── yarn.lock

至此,_ide_helper.php生成完成

 PhpStorm集成_ide_helper.php

_ide_helper.php找一个地方放着

➜  ~ mkdir PhpstormHelper
➜  ~ mv test/test_demo/_ide_helper.php PhpstormHelper/laravel_ide_helper.php



修改后

重点

model提示需要在class上方加注释,如下

namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

/**
 * App\User
 *
 * @mixin \Eloquent
 */
class User extends Authenticatable
{
}

注册的别名函数不用加,可以直接使用

Phpstorm开启Laravel代码提示

原文出处 https://shiwenyuan.github.io/post/ck20cx3v...

本作品采用《CC 协议》,转载必须注明作者和本文链接
原创不易,转载请注明出处
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 12
wangchunbo

6666

4年前 评论
Epona

file

这个应该能满足你大部分的需求,而不需要安装扩展包

4年前 评论
wangchunbo

@Epona 为什么我没有laravel这个分类啊

4年前 评论
Epona

@kuibatian 我得版本是 PHPStorm 2019.2

4年前 评论
golang练习生 4年前
wangchunbo

@Epona 好吧我的是2018。谢谢

4年前 评论

@kuibatian

file
应该是安装完这个就有那个分类了

4年前 评论
wangchunbo

@北行 谢谢哈

4年前 评论
自由与温暖是遥不可及的梦想

如果安装其他的扩展包,你这就凉凉了。每个项目都安装一下 其实也没事。 在你这个基础上还可以增强

4年前 评论

从 Laravel 5.5 开始 (加入了 Package Auto-Discovery) (自动发现扩展包)

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class 这一步就可以省略了

详见:

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

博客:Laravel 自动发现扩展包是怎样实现的

4年前 评论

我安装完laravel插件后还是没有代码提示呢@Epona

file

4年前 评论

@lovecn
请参考: https://www.jetbrains.com/help/phpstorm/la...
laravel 插件 + Laravel IDE helper 都要装
而且 Laravel IDE helper 还有相应的命令需要执行

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!