Сбой композитора -> композитор требует sger / laravel-paypal

#php #laravel #paypal #laravel-5 #laravel-5.3

#php #laravel #paypal #laravel-5 #laravel-5.3

Вопрос:

Я хочу интегрировать paypal в свой проект Laravel 5.3. Я хочу использовать пакет sger / laravel-paypal.

Когда я использую composer require sger / laravle-paypal для установки этого пакета, composer сообщает мне об этих ошибках:

 Using version ^0.1.0 for sger/laravel-paypal
./composer.json has been updated
> php artisan clear-compiled
Loading composer repositories with package information
Warning: Accessing php-repo.foticos.com over http which is an insecure protocol.
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for sger/laravel-paypal ^0.1.0 -> satisfiable by sger/laravel-paypal[0.1].
    - sger/laravel-paypal 0.1 requires paypal/rest-api-sdk-php 1.7.* -> satisfiable by paypal/rest-api-sdk-php[1.7.2, 1.7.3, 1.7.4, v1.7.0, v1.7.1].
    - paypal/rest-api-sdk-php 1.7.2 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php 1.7.3 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php 1.7.4 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php v1.7.0 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php v1.7.1 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - Conclusion: don't install psr/log 1.0.0


Installation failed, reverting ./composer.json to its original content.
  

Это мой файл composer.json:

 {
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "repositories": [ { "type": "composer", "url": "http://php-repo.foticos.com" } ],
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.3.*",
        "foticos/foti_api_client": "*@dev",        
        "foticos/laravel_foti_api": "*@dev",
        "foticos/laravel_foti_webutils": "*@dev",
        "barryvdh/laravel-debugbar" : "2.*",
        "predis/predis" : "~1.1@dev",
        "stripe/stripe-php": "^3.14",
        "guzzlehttp/guzzle": "~4.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1",
        "symfony/dom-crawler": "~3.0",
        "symfony/css-selector": "~3.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r "copy('.env.example', '.env');""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist", 
        "secure-http"      : false
    }
}
  

Комментарии:

1. попробуйте эту команду: «composer требует psr / log» перед этим

Ответ №1:

Вот как мне удалось его установить:

 $ composer require psr/log 1.0.0

$ composer require paypal/rest-api-sdk-php 1.7.*

$ composer require sger/laravel-paypal 0.1.0
  

Примечание:

  • paypal / rest-api-sdk-php 1.7. * требуется psr / log 1.0.0 -> выполняется с помощью psr /log[1.0.0]
  • для sger / laravel-paypal 0.1 требуется
    paypal / rest-api-sdk-php 1.7.*

Ответ №2:

Как указано в сообщении об ошибке, для пакета, который вы пытаетесь установить, требуется версия 1.0.0 psr/log , если вы проверите в своем composer.lock файле все другие запросы пакета, который у вас уже был ^1.0 , или ~1.0 его версию, на момент написания этой статьи это разрешилось бы 1.1.0 . Учитывая, что пакет, который вы пытаетесь потребовать, требует именно 1.0.0, теперь весь ваш набор правил требований будет разрешен 1.0.0 , вы можете просто сначала удалить свой composer.lock файл и папку поставщика, затем добавить "sger/laravel-paypal": "^0.1.0", к требованиям в свой composer.json-файл, а затем снова выполнить composer install.