php第52行的BadMethodCallException: shuffle方法不存在-在运行composer更新之后


BadMethodCallException in Macroable.php line 52: Method shuffle does not exist. - after running composer update

我刚刚更新了我当前Lumen 5.3项目上的依赖项(composer update)到他们的最新版本。现在一切似乎都被打破了,所有的illuminate/*依赖项都被更新到v5.3.23,这似乎与v5.3.16有相当多的不同。

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

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

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

它现在返回一个反射异常,因为

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有关。

似乎解决这个问题的唯一方法是将lumen"降级"到v5.2。*(我尝试了v5.3.1在我的作曲家。Json,但它仍然会带来所有的照亮包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

今早同一时间出现此错误

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

我发现,当我运行composer info时,当其余的照亮包更新时,照亮/支持没有更新。

illuminate/session v5.3.23 The illuminate session package.

illuminate/support v5.3.16 The illuminate support package.

illuminate/translation v5.3.23 The illuminate translation package.

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

我想是包更新过程中出了问题

我得到了同样的东西。我只是再次运行更新,它更新了照明/支持。这就解决了我的问题。我认为他们在推出编写器包时遗漏了一些东西。