PhpStorm - Laravel外墙的一些警告

时间:2017-07-26 17:36:33

标签: php laravel phpstorm phpstorm-2017.1

enter image description here

  1. 我正确使用了Laravel的外墙,PhpStorm给了我警告,为什么会这样?

  2. 在图像上我指出“x”表示某些......数据类型?在我使用的功能中,我为什么要这些?如何删除它们?

1 个答案:

答案 0 :(得分:10)

使用Laravel的外墙

Luke Waite is right

  

你没有使用外墙。您已经导入了这些类,并且已经导入了   首先,类别,IDE告诉你get方法不是   静态方法。

只需导入外观(如果存在)。

请参阅documentation on Facades,详细了解如何使用available facadeshow to define your own

外观类应如下所示:

use Illuminate\Support\Facades\Facade;

class Cache extends Facade
{
    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor() 
    { 
        return 'cache';
    }
}

'cache'字符串是service container绑定的名称并在service provider中定义,如下所示:

use App\Cache\MyCache;
use Illuminate\Support\ServiceProvider;

class CacheServiceProvider extends ServiceProvider
{
    /**
     * Register bindings in the container.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('cache', function ($app) {
            return new MyCache();
        });
    }
}

使用Facades

修复警告

话虽这么说,我已经厌倦了警告和失踪的自动完成并突出了立面,所以我也寻找一种方法来解决这些问题。

我遇到laravel-ide-helper,它添加了Laravel CLI命令,这些命令生成的php文件只能由IDE解析。

  

安装

     

使用以下命令将此包与composer一起使用:

composer require barryvdh/laravel-ide-helper
     

更新编辑器后,将服务提供商添加到提供商   config/app.php

中的数组      

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,To   仅在开发系统上安装此软件包,添加--dev标志   你的作曲家命令:

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

在Laravel中,而不是在中添加服务提供者   config/app.php文件,您可以将以下代码添加到您的   app/Providers/AppServiceProvider.php内的register()个文件   方法:

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

这将允许您的应用程序加载Laravel IDE Helper   非生产环境。

     

Laravel Facades的自动phpDoc生成

     

您现在可以自行重新生成文档(以备将来更新)

php artisan ide-helper:generate
     

注意: bootstrap/compiled.php必须先清除,因此请在生成之前运行php artisan clear-compiled(以及之后php artisan optimize

     

您可以将composer.json配置为在每次提交后执行此操作:

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

我们会生成.phpstorm.meta.php_ide_helper.php个文件,并且您应该将这些文件添加到.gitignore,因为您不想提交这些文件。