首页 > 解决方案 > 与 laravel/socialite 移动 tp laravel 7 冲突

问题描述

我尝试将我的 laravel 6 appto 7x 分支移动并遇到 laravel/socialite 的问题,似乎不同的包取决于不同的 laravel/socialite 版本:

 Problem 1
    - Installation request for laravel/socialite dev-master -> satisfiable by laravel/socialite[dev-master].
    - socialiteproviders/manager dev-master requires laravel/socialite ~3.0|~4.0 -> satisfiable by laravel/socialite[3.0.x-dev, 4.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 3.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 4.0.x-dev].
    - Installation request for socialiteproviders/manager dev-master -> satisfiable by socialiteproviders/manager[dev-master].

在我的 composer.json 中:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.2.5",
        "alaouy/youtube": "^2.2",
        "aloha/twilio": "^4.0",
        "arrilot/laravel-widgets": "^3.12",
        "cornford/googlmapper": "2.*",
        "cviebrock/eloquent-sluggable": "^7.0",
        "davejamesmiller/laravel-breadcrumbs": "5.x",
        "doctrine/dbal": "^2.8",
        "facebook/graph-sdk": "^5.7",
        "fideloper/proxy": "^4.0",
        "google/apiclient": "dev-master",
        "guzzlehttp/guzzle": "6.5.x-dev",
        "intervention/image": "^2.4",
        "itsgoingd/clockwork": "^3.0",
        "jrean/laravel-user-verification": "dev-master",
        "laravel/cashier": "^10.3",
        "laravel/framework": "^7.0",
        "laravel/socialite": "dev-master",
        "laravel/tinker": "^2.0",
        "laravelium/sitemap": "7.0.1",
        "maatwebsite/excel": "^3.1",
        "qlick/laravel-full-calendar": "~1.0",
        "mews/captcha": "3.1.0",
        "mews/purifier": "3.2.0",
        "paypal/rest-api-sdk-php": "*",
        "pelago/emogrifier": "3.1.0",
        "proengsoft/laravel-jsvalidation": ">2.2.0",
        "s-ichikawa/laravel-sendgrid-driver": "~2.0",
        "snowfire/beautymail": "dev-master",
        "socialiteproviders/manager": "dev-master",
        "socialiteproviders/instagram": "dev-master",
        "spipu/html2pdf": "^5.2",
        "stripe/stripe-php": "^7.2",
        "symfony/psr-http-message-bridge": "^1.2",
        "themsaid/laravel-mail-preview": "dev-master",
        "unisharp/laravel-filemanager": "^1.9",
        "wboyz/laravel-enum": "^0.2.1",
        "willvincent/feeds": "dev-master",
        "yajra/laravel-datatables-oracle": "^9.0.0",
        "zendframework/zend-diactoros": "^2.1"
    },
    "require-dev": {
    },
    ...
}

我没能解决这个问题。可以通过什么方式实现?

修改块: 我将存储库定义添加到 composer.json :

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/jeremykenedy/Generators-1.git"
    }
],
"require": {
    "php": "^7.2.5",
    "alaouy/youtube": "^2.2",
    "aloha/twilio": "^4.0",
    "arrilot/laravel-widgets": "^3.12",
    "cornford/googlmapper": "2.*",
    "cviebrock/eloquent-sluggable": "^7.0",
    "davejamesmiller/laravel-breadcrumbs": "5.x",
    "doctrine/dbal": "^2.8",
    "facebook/graph-sdk": "^5.7",
    "fideloper/proxy": "^4.0",
    "google/apiclient": "dev-master",
    "guzzlehttp/guzzle": "6.5.x-dev",
    "intervention/image": "^2.4",
    "itsgoingd/clockwork": "^3.0",
    "jrean/laravel-user-verification": "dev-master",
    "laravel/cashier": "^10.3",
    "laravel/framework": "^7.0",
    "laravel/socialite": "dev-master",
    "laravel/tinker": "^2.0",
    "laravelium/sitemap": "7.0.1",
    "maatwebsite/excel": "^3.1",
    "mews/captcha": "3.1.0",
    "mews/purifier": "3.2.0",
    "paypal/rest-api-sdk-php": "*",
    "pelago/emogrifier": "3.1.0",
    "proengsoft/laravel-jsvalidation": ">2.2.0",
    "qlick/laravel-full-calendar": "~1.0",
    "s-ichikawa/laravel-sendgrid-driver": "~2.0",
    "snowfire/beautymail": "dev-master",
    "socialiteproviders/generators": "^4.6",
    "socialiteproviders/instagram": "dev-master",
    "socialiteproviders/manager": "dev-master",
    "spatie/browsershot": "^3.27",
    "spatie/db-dumper": "^2.14",
    "spatie/laravel-activitylog": "^3.1",
    "spatie/laravel-backup": "^6.1",
    "spatie/laravel-feed": "^2.1",
    "spatie/laravel-image-optimizer": "^1.4",
    "spatie/laravel-newsletter": "^4.2",
    "spatie/laravel-sitemap": "^5.3",
    "spatie/laravel-tags": "^2.1",
    "spipu/html2pdf": "^5.2",
    "stripe/stripe-php": "^7.2",
    "symfony/psr-http-message-bridge": "^1.2",
    "themsaid/laravel-mail-preview": "dev-master",
    "unisharp/laravel-filemanager": "^1.9",
    "wboyz/laravel-enum": "^0.2.1",
    "willvincent/feeds": "dev-master",
    "yajra/laravel-datatables-oracle": "^9.0.0",
    "zendframework/zend-diactoros": "^2.1"
},
"require-dev": {
    "barryvdh/laravel-debugbar": "^3.1",
    "filp/whoops": "^2.0",
    "fzaninotto/faker": "^1.4",
    "mockery/mockery": "^1.0",
    "nunomaduro/collision": "4.1",
    "orangehill/iseed": "^2.6",
    "phpunit/phpunit": "^8.5"
},

但我得到了错误:

$ composer require socialiteproviders/generators
Using version ^4.6 for socialiteproviders/generators           
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)                  
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for laravel/socialite dev-master -> satisfiable by laravel/socialite[dev-master].
    - socialiteproviders/manager dev-master requires laravel/socialite ~3.0|~4.0 -> satisfiable by laravel/socialite[3.0.x-dev, 4.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 3.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 4.0.x-dev].
    - Installation request for socialiteproviders/manager dev-master -> satisfiable by socialiteproviders/manager[dev-master].

我是否要从 composer.json 的“要求”中删除一些点?必须用 socialiteproviders/generators 替换什么?

修改块#2: 我尝试得到其他错误:

$ composer dump-autoload                                                                                                                                
Generating optimized autoload files                                                                                                                                                                  
Class Illuminate\Foundation\ComposerScripts is not autoloadable, can not call post-autoload-dump script                                                                                              
> @php artisan package:discover                                                                                                                                                                      

Fatal error: Uncaught Error: Class 'Illuminate\Foundation\Application' not found in /mnt/_work_sdb8/wwwroot/lar/votes/bootstrap/app.php:14                                                           
Stack trace:
#0 /mnt/_work_sdb8/wwwroot/lar/votes/artisan(20): require_once()
#1 {main}
  thrown in /mnt/_work_sdb8/wwwroot/lar/votes/bootstrap/app.php on line 14
PHP Fatal error:  Uncaught Error: Class 'Illuminate\Foundation\Application' not found in /mnt/_work_sdb8/wwwroot/lar/votes/bootstrap/app.php:14
Stack trace:
#0 /mnt/_work_sdb8/wwwroot/lar/votes/artisan(20): require_once()
#1 {main}
  thrown in /mnt/_work_sdb8/wwwroot/lar/votes/bootstrap/app.php on line 14
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255

在我的 bootstrap/app.php 中:

<?php


$app = new Illuminate\Foundation\Application(
    realpath(__DIR__ . '/../')
);

我丢失了一些声明吗?

修改块#3: 我尝试按照您的文件顺序:块“关键字”,“许可证”,“类型”,“要求”

"laravel/socialite": "dev-master",
...
"socialiteproviders/generators": "^4.6",
"socialiteproviders/manager": "dev-master",
"socialiteproviders/instagram": "dev-master"

在底部

下一个块:

“需要开发”,

“存储库”:[{“类型”:“vcs”,“url”:“ https://github.com/jeremykenedy/Generators-1.git ”}],

“自动加载”:

我的 composer.json 有:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "type": "project",

    "require": {
        "php": "^7.2.5",
        "alaouy/youtube": "^2.2",
        "aloha/twilio": "^4.0",
        "arrilot/laravel-widgets": "^3.12",
        "cornford/googlmapper": "2.*",
        "cviebrock/eloquent-sluggable": "^7.0",
        "davejamesmiller/laravel-breadcrumbs": "5.x",
        "doctrine/dbal": "^2.8",
        "facebook/graph-sdk": "^5.7",
        "fideloper/proxy": "^4.0",
        "google/apiclient": "dev-master",
        "guzzlehttp/guzzle": "6.5.x-dev",
        "intervention/image": "^2.4",
        "itsgoingd/clockwork": "^3.0",
        "jrean/laravel-user-verification": "dev-master",
        "laravel/cashier": "^10.3",
        "laravel/framework": "^7.0",
        "laravel/socialite": "dev-master",
        "laravel/tinker": "^2.0",
        "laravelium/sitemap": "7.0.1",
        "maatwebsite/excel": "^3.1",
        "qlick/laravel-full-calendar": "~1.0",
        "mews/captcha": "3.1.0",
        "mews/purifier": "3.2.0",
        "paypal/rest-api-sdk-php": "*",
        "pelago/emogrifier": "3.1.0",
        "proengsoft/laravel-jsvalidation": ">2.2.0",
        "s-ichikawa/laravel-sendgrid-driver": "~2.0",
        "snowfire/beautymail": "dev-master",

        "spatie/browsershot": "^3.27",
        "spatie/db-dumper": "^2.14",
        "spatie/laravel-activitylog": "^3.1",
        "spatie/laravel-backup": "^6.1",
        "spatie/laravel-feed": "^2.1",
        "spatie/laravel-image-optimizer": "^1.4",
        "spatie/laravel-newsletter": "^4.2",
        "spatie/laravel-sitemap": "^5.3",
        "spatie/laravel-tags": "^2.1",
        "spipu/html2pdf": "^5.2",
        "stripe/stripe-php": "^7.2",
        "symfony/psr-http-message-bridge": "^1.2",
        "themsaid/laravel-mail-preview": "dev-master",
        "unisharp/laravel-filemanager": "^1.9",
        "wboyz/laravel-enum": "^0.2.1",
        "willvincent/feeds": "dev-master",
        "yajra/laravel-datatables-oracle": "^9.0.0",
        "zendframework/zend-diactoros": "^2.1",

        "socialiteproviders/generators": "^4.6",
        "socialiteproviders/manager": "dev-master",
        "socialiteproviders/instagram": "dev-master"
    },

    "require-dev": {
        "barryvdh/laravel-debugbar": "^3.1",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "4.1",
        "orangehill/iseed": "^2.6",
        "phpunit/phpunit": "^8.5"
    },

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/jeremykenedy/Generators-1.git"
        }
    ],

    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ],
        "post-update-cmd": [
            "php artisan vendor:publish --provider=\"Proengsoft\\JsValidation\\JsValidationServiceProvider\" --tag=public --force"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

但我仍然得到错误:

$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)                  
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for laravel/socialite dev-master -> satisfiable by laravel/socialite[dev-master].
    - socialiteproviders/manager dev-master requires laravel/socialite ~3.0|~4.0 -> satisfiable by laravel/socialite[3.0.x-dev, 4.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 3.0.x-dev].
    - Can only install one of: laravel/socialite[dev-master, 4.0.x-dev].
    - Installation request for socialiteproviders/manager dev-master -> satisfiable by socialiteproviders/manager[dev-master].

哪个顺序错了?

谢谢!

标签: laravel

解决方案


目前,Socialite 没有更新来处理 Laravel 7。

但是有办法解决这个问题。

您可以分叉项目,更新分叉的作曲家以允许 7,然后composer.json在您的项目中更新。我已经这样做了,直到作者添加了 L7 支持。

这是我的做法:

我的项目composer.json调用我的叉子:

    "repositories": [
        {
            "type": "vcs",
            "url":  "https://github.com/jeremykenedy/Generators-1.git"
        }
    ],

然后我做一个正常的composer updatecomposer install socialiteproviders/generators然后它使用我的叉子同时有支持。

我的项目作曲家:

https://github.com/jeremykenedy/laravel-auth/blob/master/composer.json#L37

https://github.com/jeremykenedy/laravel-auth/blob/master/composer.json#L51

我的分叉社交名流作曲家为其提供了 L7 支持: https ://github.com/jeremykenedy/Generators-1/blob/master/composer.json#L19

“社交名流/经理”:“^3.5”

https://github.com/SocialiteProviders/Manager/releases

“socialiteproviders/instagram”:“^3.0”

https://github.com/SocialiteProviders/Instagram/releases


推荐阅读