Laravel

composer requireコマンドでバージョンが全然うまくいかない時の対処法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

⇨ Laravel 記事の目次はこちら

weidner/goutte というパッケージを入れようと思ったら、バージョン関係でエラーがでました。

Laravel 6.20
Problem 1

- Root composer.json requires weidner/goutte ^2.1 -> satisfiable by weidner/goutte[2.1.0].
- weidner/goutte 2.1.0 requires illuminate/support ^8 -> found illuminate/support[v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.

というエラーの対処法について書いていきます。

解決方法

composer.json に追記

"weidner/goutte": "^1.6"

コマンド

composer update

解説というか考察というかあとがき

色々なコマンドを試しましたが、Laravel6 自体がもう結構古いのでなかなかうまくいきませんでした。

ドキュメントによれば Laravel6 は

“weidner/goutte”: “^1.6”

を入れてねと書いてあるものの、それを入れようとするとその他のパッケージ(Guzzle とか)をバージョンダウンさせないとどうやらダメみたいでした。

結果こういったバージョンの変更になりました。

- Removing psr/http-client (1.0.1)
  - Locking fabpot/goutte (v3.3.1)
  - Downgrading guzzlehttp/guzzle (7.3.0 => 6.5.5)
  - Locking symfony/browser-kit (v5.3.4)
  - Locking symfony/dom-crawler (v5.3.7)
  - Locking weidner/goutte (1.6.1)

まとめ

以上です。パッケージのバージョン関係は全然まだまだよく分からないことだらけですが、

バージョンを 1.6 を入れようとしても、2.0 を入れようとしても無理ぽよーってなった時は、

json に直接書いて update しちゃうというのは選択肢になるんだなと思いました。

開発の序盤であればあんまり気を使わずに使ってもいいのかな?分からないですが、今回は遊びスクレイピング用なのでお咎めなしということで。

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする