composerで yii2のバージョンアップ 2.0.15.0へ
バージョンアップする背景
composerもあまり触ったことがないけど、 大きなプロジェクトが動き出すタイミングで最新版にアップデートしとこーってなったのでやってみた。
つまったところ
マイナーバージョンは以下のようになっていたら勝手に上がっていくと思ったけどそうじゃなかったみたい。
"require": { "yiisoft/yii2": "2.0.*" }
コードに「Yii::getVersion();」仕込んでバージョン確認してみたら、実際は「2.0.10」で止まっていた。
調べて直して見た
composer.jsonの書き方が違かったらしい。 https://www.yiiframework.com/news/168/releasing-yii-2-0-15-and-database-extensions-with-security-fixes
(勝手にアップデートされると動かなくなる修正があるとかで、書き方変えたのかな・・・?)
composer.jsonに以下に修正することで、新しいバージョンが入った。
"require": { "yiisoft/yii2":"~2.0.15.0" }
次の壁
今使っているyiiのcodeceptionがもう使えなくなって、acceptanceの自動テスト通らなくなった。 「codeception/codeception」をいれないといけないらしい。次はこれを取り除く作業をしていかなきゃ。
Package yiisoft/yii2-codeception is abandoned, you should avoid using it. Use codeception/codeception instead.
学んだこと
ローカルでバージョンあげて確かめる時に「composer update」を叩いて更新してしまったけど、他のバージョンも更新されてしまった。問題はないけど意図しないでバージョンあがっちゃうのはよくないので、「composer require」で確認するようにする。
サーバのバージョンアップするために「composer.json」をあげたが、「composer.lock」があがってなかったのでバージョンがあがらなかった。composer.lockもあげないといけないと言う基本的なことを学んだ。