【问题标题】:BadMethodCallException in Macroable.php line 52: Method shuffle does not exist. - after running composer updateMacroable.php 第 52 行中的 BadMethodCallException:方法 shuffle 不存在。 - 运行作曲家更新后
【发布时间】:2017-03-28 10:37:09
【问题描述】:

我刚刚将我当前 Lumen 5.3 项目的依赖项(composer update)更新为最新版本。 现在一切似乎都坏了,开箱即用的所有illuminate/* 依赖项都更新到了v5.3.23,这似乎与v5.3.16 有很多不同。

我发现的第一个问题是路由组中定义的命名空间,不再需要它。

这段代码(以前可以正常工作)

$app->group(['prefix' => '{storeId}', 'namespace' => 'App\Http\Controllers'], function () use ($app) {
    ....
});

它现在返回一个 ReflectionException 因为

Class App\Http\Controllers\App\Http\Controllers\MyController.php does not exists.

嗯,这很容易解决,我刚刚删除了命名空间,它就起作用了

$app->group(['prefix' => '{storeId}'], function () use ($app) {
    ....
});

现在我遇到了一个对我来说毫无意义的非常奇怪的错误:

BadMethodCallException in Macroable.php line 52: Method shuffle does not exist..

每次我尝试使用 Eloquent 时都会引发该异常。为了清楚起见,我在我的代码库中找不到任何方法shuffle,并且vendor 文件夹中的唯一引用与fzaninotto/fakerilluminate/collection 相关。

似乎解决此问题的唯一方法是将流明“降级”到 v5.2。*(我在 composer.json 中尝试使用 v5.3.1,但它仍然带来了所有的照明包 v5.3.23)。

这些是更新的依赖项

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing symfony/polyfill-mbstring (v1.2.0)
  - Installing symfony/polyfill-mbstring (v1.3.0)
    Loading from cache

  - Removing paragonie/random_compat (v2.0.3)
  - Installing paragonie/random_compat (v2.0.4)
    Downloading: 100%

  - Removing illuminate/contracts (v5.3.16)
  - Installing illuminate/contracts (v5.3.23)
    Loading from cache

  - Removing illuminate/filesystem (v5.3.16)
  - Installing illuminate/filesystem (v5.3.23)
    Downloading: 100%

  - Removing illuminate/container (v5.3.16)
  - Installing illuminate/container (v5.3.23)
    Loading from cache

  - Removing illuminate/events (v5.3.16)
  - Installing illuminate/events (v5.3.23)
    Loading from cache

  - Removing illuminate/view (v5.3.16)
  - Installing illuminate/view (v5.3.23)
    Downloading: 100%

  - Removing illuminate/validation (v5.3.16)
  - Installing illuminate/validation (v5.3.23)
    Downloading: 100%

  - Removing illuminate/translation (v5.3.16)
  - Installing illuminate/translation (v5.3.23)
    Downloading: 100%

  - Removing illuminate/console (v5.3.16)
  - Installing illuminate/console (v5.3.23)
    Downloading: 100%

  - Removing illuminate/queue (v5.3.16)
  - Installing illuminate/queue (v5.3.23)
    Downloading: 100%

  - Removing illuminate/pipeline (v5.3.16)
  - Installing illuminate/pipeline (v5.3.23)
    Loading from cache

  - Removing illuminate/pagination (v5.3.16)
  - Installing illuminate/pagination (v5.3.23)
    Downloading: 100%

  - Removing illuminate/session (v5.3.16)
  - Installing illuminate/session (v5.3.23)
    Downloading: 100%

  - Removing illuminate/http (v5.3.16)
  - Installing illuminate/http (v5.3.23)
    Loading from cache

  - Removing illuminate/hashing (v5.3.16)
  - Installing illuminate/hashing (v5.3.23)
    Loading from cache

  - Removing illuminate/encryption (v5.3.16)
  - Installing illuminate/encryption (v5.3.23)
    Loading from cache

  - Removing illuminate/database (v5.3.16)
  - Installing illuminate/database (v5.3.23)
    Downloading: 100%

  - Removing illuminate/config (v5.3.16)
  - Installing illuminate/config (v5.3.23)
    Downloading: 100%

  - Removing illuminate/cache (v5.3.16)
  - Installing illuminate/cache (v5.3.23)
    Downloading: 100%

  - Removing illuminate/bus (v5.3.16)
  - Installing illuminate/bus (v5.3.23)
    Downloading: 100%

  - Removing illuminate/broadcasting (v5.3.16)
  - Installing illuminate/broadcasting (v5.3.23)
    Downloading: 100%

  - Removing illuminate/auth (v5.3.16)
  - Installing illuminate/auth (v5.3.23)
    Downloading: 100%

  - Removing laravel/lumen-framework (v5.3.1)
  - Installing laravel/lumen-framework (v5.3.2)
    Downloading: 100%

  - Removing aws/aws-sdk-php (3.19.23)
  - Installing aws/aws-sdk-php (3.19.24)
    Loading from cache

  - Removing sebastian/recursion-context (1.0.2)
  - Installing sebastian/recursion-context (1.0.3)
    Loading from cache

  - Removing phpunit/phpunit (5.6.2)
  - Installing phpunit/phpunit (5.6.3)
    Downloading: 100%

Writing lock file
Generating autoload files

【问题讨论】:

    标签: php laravel collections eloquent lumen


    【解决方案1】:

    我得到了同样的东西。我刚刚再次运行更新,它更新了照明/支持。这解决了我的问题。我认为他们在推送作曲家包时遗漏了一些东西。

    【讨论】:

      【解决方案2】:

      今天早上大约在同一时间出现此错误。

      1. 删除路由中的命名空间。
      2. 第二次更新作曲家。

      当我运行 composer info 时,我发现 Illuminate/Support 没有更新,而其他 Illuminate 软件包更新了。

      illuminate/session v5.3.23 Illuminate Session 包。

      illuminate/support v5.3.16 Illuminate 支持包。

      illuminate/translation v5.3.23 Illuminate 翻译包。

      有趣的是,最初,我做了另一个作曲家更新。但它没有解决。所以,我所做的是回溯 Laravel lumen 包(运行 composer update),然后再次更新到最新版本。

      我想,软件包更新过程中出了点问题。

      【讨论】:

      • 再次运行composer update解决了这个问题,实际上我首先将lumen降级为5.2.*,删除了供应商文件夹和composer.lock,然后composer install,然后我更改为5.3.*和做了同样的过程,这次illuminate/support 包更新为v5.3.23。感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 2016-06-05
      相关资源
      最近更新 更多