【问题标题】:laravel 5 ide autocompletionlaravel 5 ide 自动补全
【发布时间】:2016-04-25 21:02:29
【问题描述】:

我想切换到 laravel 5,但是 ide 遇到了一些问题 - 自动补全。我正在使用 phpstorm。 在谷歌中,答案总是建议使用 https://github.com/barryvdh/laravel-ide-helper 。但它似乎在 Laravel 5 中被破坏了。

我正在做的步骤是:

  1. 安装 Laravel 5

    composer create-project laravel/laravel 
    
  2. 需要 ide-helper

    composer require barryvdh/laravel-ide-helper
    
  3. 添加了“Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider”,

    ....
    'Illuminate\Translation\TranslationServiceProvider',
    'Illuminate\Validation\ValidationServiceProvider',
    'Illuminate\View\ViewServiceProvider',
    'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
    
  4. 尝试生成帮助文件

    artisan ide-helper:generate
    

但它总是因以下错误而中断:

exception 'InvalidArgumentException' with message 'There are no commands defined in the "ide-helper" namespace.' in C:\xampp\htdocs\test\vendor\symfony\console\Symfony\Component\Console\Application.php:501

0 C:\xampp\htdocs\test\vendor\symfony\console\Symfony\Component\Console\Application.php(535): Symfony\Component\Console\Application->findNamespace('ide-helper')
1 C:\xampp\htdocs\test\vendor\symfony\console\Symfony\Component\Console

\Application.php(192): Symfony\Component\Console\Application->find('ide-helper:gene...')
2 C:\xampp\htdocs\test\vendor\symfony\console\Symfony\Component\Console\Application.php(126): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Outpu
t\ConsoleOutput))
3 C:\xampp\htdocs\test\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(91): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Out
put\ConsoleOutput))
4 C:\xampp\htdocs\test\artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
5 {main}

也许有人有同样的问题,可以帮助我。 除了 barryvdh 的 ide-helper 之外,我愿意接受不同的自动完成解决方案。

【问题讨论】:

  • 您完成所有步骤了吗?我的意思是这个:“更新composer后,将ServiceProvider添加到config/app.php中的providers数组” ?
  • 是的,我已添加服务提供商,将更新我的问题。谢谢

标签: autocomplete laravel-5 phpstorm


【解决方案1】:

我遇到了同样的问题,这解决了它:

在你运行php artisan ide-helper:generate 命令之前,请确保php artisan clear-compiledphp artisan optimize 被注明here。如果这不能解决您的问题,请查看this 并通过选择此选项清除 PhpStorm 缓存:

文件 |使缓存无效/重新启动

自动重启后,PhpStorm 将再次索引,一切正常。

对不起,我的英语不好。

已编辑:在这些步骤之后,像 use Illuminate\Support\Facades\Auth 这样导入您的 Facades 将它们链接到您的 _ide_helper.php 文件中,如 use Auth

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。这些是我修复它的步骤:

    • 我仔细检查了'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider' 是否已正确添加到config/app.php 中的providers 数组中。
    • 我执行了artisan clear-compiled。没有效果

    执行php artisan config:clear 解决了这个问题。

    【讨论】:

      【解决方案3】:

      这个错误发生在包ServiceProvider没有加载的时候。

      如果你有多个配置文件(比如不同的环境),你必须确保服务提供者在你使用包的所有环境中都设置好了。

      config/
        local/
          app.php
        app.php
      

      要验证服务提供者是否正确设置为您的应用程序,您可以转储应用程序配置:

      dd(\Config::get('app.providers'));
      

      【讨论】:

      • 这真的和问的没什么关系。
      • @RossEdman 好像是这样。如果 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider' 没有添加到 app.php 中的 providers 数组,那么 artisan 将不会显示来自 ide-helper 命名空间的任何命令。问题提到他做了这一步,但我在他编辑的 cmets 中看到添加该信息的问题。这是对可能解决问题的原始问题的一个很好的答案。
      【解决方案4】:

      试试这个:

      php artisan ide-helper:generate
      

      【讨论】:

        【解决方案5】:

        这是截至本月的updated gist。我已经对此进行了测试,它可以在 PHPStorm 中运行。

        您也不必通过 composer 安装它。复制要点并将其保存在您的根文件夹中为_ide_helper.php

        【讨论】:

          猜你喜欢
          • 2017-06-28
          • 1970-01-01
          • 2016-03-25
          • 1970-01-01
          • 2012-09-03
          • 1970-01-01
          • 2014-06-20
          • 2017-11-03
          • 2017-10-25
          相关资源
          最近更新 更多