なにがあったか
公式の手順通りにインストールしているはずが、いくつかのエラー(主に関連するライブラリ)に見舞われた。
インストール
開発環境が Laravel ver5.5.49 であるため、公式を参考にバージョン3.0を導入(PHPのメモリ制限に引っかかるためリミットをなんとかしている)
$ COMPOSER_MEMORY_LIMIT=-1 composer require maatwebsite/excel:3.0
インストールが
killed
で終わっているのに気づかず次の手順に進んだりするとハマる(自分)。
――で、これはどうもDockerのメモリが足りないらしいので、自分はDocker DesktopのPerformanceからメモリを4GBまで増やした。
エラー
Excelファイルをダウンロードする実装自体は上記の手順でできてしまうが(スミマセン、うろ覚え)、このあとなんらかの事情で composer install
を打った際に
Problem 1
- phpoffice/phpspreadsheet 1.15.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.15.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- Installation request for phpoffice/phpspreadsheet 1.15.0 -> satisfiable by phpoffice/
こういった『関連するライブラリがない』というエラーが次々に出てくる。ゴチャゴチャと関連するライブラリを順番にインストールしていったが、最終的に『Laravelのバージョンが合わん』と言われてしまった。すでにスタートしている開発環境でそれをやるのはわりとめんどくさいので困った。
解決
$ COMPOSER_MEMORY_LIMIT=-1 composer require maatwebsite/excel:3.*
バージョンの指定をやや緩くしたら解決した。
関連するライブラリをインストールしなければいけない点は同じだが、少なくとも「Laravelのバージョンが」と言われることはなくなって解決した(開発環境によっては違うポイントでエラーにハマる可能性はある)。
雑感
3.0
はダメなのに 3.*
だとOKなのはなんでだろう🤔
バージョンアップでLaravelのバージョン依存が緩和されたのかな。。