Search code examples
paypalcomposer-phpsilverstripeomnipay

Silvestripe 4.4 can't instal omnipay/paypal


With silverstripe 4.4 and silvershop, I have tried a hundred variations to get omnipay/paypal installed with composer.

No matter what I try it doesn't install.

Has anybody got it working with ss4.4 ?

Whats wrong?

enter image description here


Solution

  • As per your error message, you are missing the package php-http/client-implementation.

    If you get a quick look at this from the Packagist, you'll see that this package is actually a virtual package, so you need one of the packages that define themselves as php-http/client-implementation, since it is not a real package, you have to choose one.

    If you don't know which to choose, maybe choose the first one from the Packagist.
    For what it worth, I actually had pretty good impression of guzzle packages in the past, so I would say it is a safe bet.

    So you can fix your issue by doing

    composer require php-http/guzzle6-adapter
    

    Then running

    composer require omnipay/paypal
    

    Or you can even do it in one go:

    $ composer require php-http/guzzle6-adapter omnipay/paypal
    composer require php-http/guzzle6-adapter omnipay/paypal
    Using version ^2.0 for php-http/guzzle6-adapter
    Using version ^3.0 for omnipay/paypal
    ./composer.json has been created
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 21 installs, 0 updates, 0 removals
      - Installing php-http/promise (v1.0.0): Downloading (100%)         
      - Installing psr/http-message (1.0.1): Downloading (100%)         
      - Installing psr/http-client (1.0.0): Downloading (100%)         
      - Installing php-http/httplug (v2.0.0): Downloading (100%)         
      - Installing moneyphp/money (v3.2.1): Downloading (100%)         
      - Installing symfony/polyfill-mbstring (v1.12.0): Downloading (100%)         
      - Installing symfony/polyfill-php72 (v1.12.0): Downloading (100%)         
      - Installing symfony/polyfill-intl-idn (v1.12.0): Downloading (100%)         
      - Installing symfony/mime (v4.3.3): Downloading (100%)         
      - Installing symfony/http-foundation (v4.3.3): Downloading (100%)         
      - Installing php-http/discovery (1.7.0): Downloading (100%)         
      - Installing clue/stream-filter (v1.4.1): Downloading (100%)         
      - Installing php-http/message-factory (v1.0.2): Downloading (100%)         
      - Installing php-http/message (1.8.0): Downloading (100%)         
      - Installing guzzlehttp/promises (v1.3.1): Downloading (100%)         
      - Installing ralouphie/getallheaders (3.0.3): Downloading (100%)         
      - Installing guzzlehttp/psr7 (1.6.1): Downloading (100%)         
      - Installing guzzlehttp/guzzle (6.3.3): Downloading (100%)         
      - Installing php-http/guzzle6-adapter (v2.0.1): Downloading (100%)         
      - Installing omnipay/common (v3.0.2): Downloading (100%)         
      - Installing omnipay/paypal (v3.0.2): Downloading (100%)         
    moneyphp/money suggests installing ext-bcmath (Calculate without integer limits)
    moneyphp/money suggests installing ext-gmp (Calculate without integer limits)
    moneyphp/money suggests installing ext-intl (Format Money objects with intl)
    moneyphp/money suggests installing florianv/swap (Exchange rates library for PHP)
    moneyphp/money suggests installing florianv/exchanger (Exchange rates library for PHP)
    moneyphp/money suggests installing psr/cache-implementation (Used for Currency caching)
    symfony/polyfill-intl-idn suggests installing ext-intl (For best performance)
    php-http/discovery suggests installing puli/composer-plugin (Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details.)
    php-http/message suggests installing zendframework/zend-diactoros (Used with Diactoros Factories)
    php-http/message suggests installing slim/slim (Used with Slim Framework PSR-7 implementation)
    guzzlehttp/psr7 suggests installing zendframework/zend-httphandlerrunner (Emit PSR-7 responses)
    guzzlehttp/guzzle suggests installing psr/log (Required for using the Log middleware)
    omnipay/common suggests installing league/omnipay (The default Omnipay package provides a default HTTP Adapter.)
    Writing lock file
    Generating autoload files
    

    More on virtual packages: