为什么作曲家更新会导致laravel app在重定向时失败

时间:2018-02-05 22:57:04

标签: php laravel redirect composer-php

我有一个laravel应用程序(版本5.5),我已经开发了几个月。 最长的时间我可以在我的composer.json文件中添加新库并运行“composer update”,这样就可以构建一个新的composer.lock文件,一切正常。但是现在当我运行作曲家更新并重新启动我的laravel应用程序时,我所做的任何会导致网站尝试“重定向”(例如登录或注销)的行为都会产生以下错误:

类型错误:参数1传递给Laravel \ Lumen \ Http \ Redirector :: __ construct()必须是Laravel \ Lumen \ Application的实例,给出的Illuminate \ Foundation \ Application实例,在...中调用...(取决于我正在做重定向的地方)

所以我确定这必定是因为某些包没有正确更新。因此,如果我只删除整个.. \ vendor文件夹,然后运行composer install,它将解决问题。网站将运行好几个月,如果我再次运行作曲家更新错误回来。所以我知道它是由包含的其中一个包引起的。有谁知道该怎么做才能弄清楚是什么,或者是怎么或哪个包导致了这个错误?

如果你需要它,那么是composer.json文件的副本:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.6.4",
    "anhskohbo/no-captcha": "^2.3",
    "askedio/laravel5-soft-cascade": "^5.5",
    "aws/aws-sdk-php": "^3.25",
    "aws/aws-sdk-php-laravel": "^3.1",
    "doctrine/dbal": "^2.5",
    "intervention/image": "^2.3",
    "laravel/framework": "5.5.*",
    "laravel/socialite": "^3.0",
    "laravel/tinker": "~1.0",
    "laravolt/avatar": "^1.8",
    "league/flysystem-aws-s3-v3": "^1.0",
    "pbmedia/laravel-ffmpeg": "^1.1",
    "php-ffmpeg/php-ffmpeg": "^0.9.5",
    "sammyk/laravel-facebook-sdk": "^3.5",
    "braintree/braintree_php" : "3.27.0"
},
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~6.0",
    "filp/whoops": "~2.0"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Http/helpers.php"
    ]
},
"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    }
},
"scripts": {
    "post-root-package-install": [
        "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postInstall",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan optimize"
    ],
    "post-autoload-dump": [
      "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
      "@php artisan package:discover"
    ]
},
"config": {
    "preferred-install": "dist",
    "sort-packages": true
}
}

===============================================

更新:要清楚我已经搜索了Laravel \ Lumen的代码,但我没有找到任何引用,但是当我搜索\ vendor文件夹时,我得到了几个包括亚马逊AWS的软件包(参见下文)....但是我该如何修理这些包?

enter image description here

1 个答案:

答案 0 :(得分:0)

Laravel\Lumen你的答案。为什么要使用Lumen

您的代码中某处导入了错误的类。例外是声明正在创建Illuminate\Foundation\Application,这是正确的,但在某处有一个类型提示期待Laravel\Lumen\Application。搜索Laravel\Lumen\Application的代码,您可能会发现问题。