php-tmdb / api

PHP 7.3+ API Wrapper for The Movie Database
MIT License
405 stars 113 forks source link

Guzzle 7 #214

Closed ghost closed 3 years ago

ghost commented 4 years ago

Could this package be updated with Guzzle 7 support? It's holding back my application update now :-)

GreenImp commented 4 years ago

I've just cloned the repo and tried updating Guzzle to v7, but it fails due to another dependency requiring Guzzle v6:

rtheunissen/guzzle-log-middleware v0.4.2 requires guzzlehttp/guzzle ~6.0

Looks like this dependency is just used for logging, but also hasn't been updated in 5 years, so it's unlikely that it'll get updated. I wonder if it would be worth removing the rtheunissen/guzzle-log-middleware dependency altogether, so Guzzle can be updated.

foremtehan commented 4 years ago

laravel 8 =< uses Guzzle 7 so...

wtfzdotnet commented 3 years ago

Been a while, but effort is being put into overall psr compliance in feature/4.x. When 4.0 gets released you are free to use whatever PSR-18 client you would like :-).

wtfzdotnet commented 3 years ago

For reference see the new composer.json file https://github.com/php-tmdb/api/pull/222/files#diff-d2ab9925cad7eac58e0ff4cc0d251a937ecf49e4b6bf57f8b95aab76648a9d34

wtfzdotnet commented 3 years ago

Upgrade to 4.0 :-), and the choice is yours

foremtehan commented 3 years ago

@wtfzdotnet I just installed a fresh laravel app and required version 4 but i get these:

composer require php-tmdb/api
Using version ^4.0 for php-tmdb/api
./composer.json has been updated
Running composer update php-tmdb/api
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-tmdb/api[4.0.0, ..., 4.0.x-dev] require psr/http-factory-implementation ^1.0 -> could not be found in any version, but the following packages provide it:
      - guzzlehttp/psr7 PSR-7 message implementation that also provides common utility methods
      - http-interop/http-factory-guzzle An HTTP Factory using Guzzle PSR7
      - laminas/laminas-diactoros PSR HTTP Message implementations
      - nyholm/psr7 A fast PHP7 implementation of PSR-7
      - zendframework/zend-diactoros PSR HTTP Message implementations
      - typo3/cms-core The core library of TYPO3.
      - slim/psr7 Strict PSR-7 implementation
      - tuupola/http-factory Lightweight autodiscovering PSR-17 HTTP factories
      - php-extended/php-http-message-factory-psr17 An implementation of the psr-17 based on the php-http-message-psr7 library
      - typo3/cms TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj an
      - httpsoft/http-message Strict and fast implementation of PSR-7 and PSR-17
      - sunrise/http-factory Sunrise HTTP factory for PHP 7.1+ based on PSR-17
      - bittyphp/http PSR-7 and PSR-17 HTTP implementation.
      - http-interop/http-factory-diactoros An HTTP Factory using Zend Diactoros
      - windwalker/http Windwalker Http package
      - bnf/typo3-http-factory PSR-17 HTTP message factories for the TYPO3 PSR-7 implementation
      - http-interop/http-factory-slim An HTTP Factory using Slim HTTP
      - berlioz/http-message Berlioz HTTP Message is a PHP library whose implements PSR-7 (HTTP message interfaces) and PSR-17 (H
      - xtreed/zend-diactoros PSR HTTP Message implementations
      - vitya/components Vitya PHP application framework base components
      ... and 29 more.
      Consider requiring one of these to satisfy the psr/http-factory-implementation requirement.
    - Root composer.json requires php-tmdb/api ^4.0 -> satisfiable by php-tmdb/api[4.0.0, 4.0.1, 4.0.x-dev].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
 - It's a private package and you forgot to add a custom repository to find it

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
wtfzdotnet commented 3 years ago

@foremtehan expected behavior, review the updated documentation https://github.com/php-tmdb/api#dependencies-you-have-to-fulfill-yourself

  Problem 1
    - php-tmdb/api[4.0.0, ..., 4.0.x-dev] require psr/http-factory-implementation ^1.0 -> could not be found in any version, but the following packages provide it:

The error message here states you need to install packages to fulfill dependencies yourself, the following load of packages that follow are suggestions by composer for packages that fulfill that dependency. We do not make a choice anymore to force you to use guzzle or any other library.

See the composer require example here https://github.com/php-tmdb/api#new-to-psr-standards-or-composer for a quick ref what you should be looking for.

In your case I would recommend installing nyholm/psr7 (it also includes psr-17 which your composer.json is lacking) as it is lightweight.

I've spent quite some time updating the documentation and unit tests to reflect all changes made, so please do make use of it and let me know if you find anything that's wrong in there :-).