Laravel パッケージに関するエラーの原因と解決方法

Laravelで『composer update』実行時に以下のようなエラー?注意的な黄色の警告が表示された。

Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.

 

エラーの原因

「パッケージfzaninotto / fakerは放棄されているため、使用を避ける必要があります。 交換は提案されませんでした」
「パッケージphpunit / php-token-streamは破棄されているため、使用しないでください。 代替品は提案されていません。」

Google翻訳曰く、上記の通り。

https://github.com/fzaninotto/Faker

https://github.com/sebastianbergmann/php-token-stream

どうやらパッケージがアーカイブされているらしい。

 

エラーの解決方法

新しいリポジトリに更新する。

fzaninotto/Faker⇒fakerphp/faker

$ composer remove --dev fzaninotto/faker //fzaninotto/fakerの削除
$ composer require --dev fakerphp/faker //fakerphp/fakerのインストール

これでインストール完了。

$ php artisan db:seed

シーディング実行して壊れてないか確認する。

 

次はphpunit/php-token-streamの更新。
なんでもこれはPHPUnit8からPHPUnit9でバージョンアップする必要があるとのこと。

$ composer remove --dev phpunit/phpunit //phpunit/phpunitの削除
$ composer require --dev phpunit/phpunit //phpunit/phpunitのインストール

で完了。

自分の場合はこれで問題なく終わったが、他の方のを参考にしたところエラーが出るパターンもあるらしい。
詳細は下記に記載。

$ composer remove --dev phpunit/phpunit
$ composer require --dev phpunit/phpunit

our requirements could not be resolved to an installable set of packages.

 Problem 1
 - phpunit/phpunit[9.5.0, ..., 9.5.x-dev] require sebastian/diff ^4.0.3 -> found sebastian/diff[dev-master, 4.0.3, 4.0.4,
4.0.x-dev (alias of dev-master)] but the package is fixed to 3.0.3 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
 - Root composer.json requires phpunit/phpunit ^9.5 -> satisfiable by phpunit/phpunit[9.5.0, ..., 9.5.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

このようなエラーが出たらその内容に従い、依存パッケージも含めてアップグレードを試す。

$ composer require --dev --with-all-dependencies phpunit/phpunit
$ ./vendor/bin/phpunit --version
PHPUnit 9.5.4 by Sebastian Bergmann and contributors.

テストが破損していないかの確認。

$ php artisan test

問題なければ再度『composer update』を試して、上手くいけばOK。

 

別件のパッケージ関連エラー

上記のパッケージエラーとは異なり、以下のものは無視してしまっても問題ない。

Package sebastian/resource-operations is abandoned, you should avoid using it. No replacement was suggested.

「パッケージsebastian / resource-operationsは放棄されているため、使用を避ける必要があります。 代替品は提案されていません。」

 

sebastian / resource-operationsの作者曰く、スルーで良いらしい。
https://github.com/sebastianbergmann/phpunit/issues/4714