システムバージョンアップ②ソース修正

システムバージョンアップ①に書いた通り、OSなどをアップデートして動かそうとしています。まずはローカル環境である程度動くところまでソースコードを修正していきます。都度追記する形で書いていきます。

とりあえず乗っけてみる

2020.11.22(Sun) – 最新バージョンにソース落としてエラーでもいいからページが表示されるところまでを目指しました。

MariaDBやMongoDBの復元はあっさりできました。MongoDBはメジャーバージョンが上がっているのでうまくいかないかもと思いましたが、問題なくmongorestoreで復元できました。

composerのインストールで色々エラーが出たのですが、単純に設定が足りてなかったりするだけでした。名前空間の最初をAppからHgs3に変えていたのを忘れて、composer.jsonの設定をそのままにしていたところで若干ハマりつつも、2時間ほど奮闘の末なんとかcomposerのインストールは成功しました。

そしたら、動くんですよね。トップページだけですけども。Laravel8はルートの書き方が変わっているって話で動かないかと思ったのですが、まだ互換性は維持されているのでしょうか?でも、他のページは動きません。しかもLaravelのエラーではなく、Apacheのエラーが出ていました。

[core:error] [pid 515] [client ::1:41210] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost/

何でしょうね?次回見てみます。

2020.11.23(月) – 上記のエラー解決しました。単に、.htaccessのRewriteRuleとRewriteBaseの設定が現在の開発環境と合っていないだけでした😅

ログインしようとするとエラーになりますね。ルートが見つからないと言ってるので、ルーティングの書き方変更によるものでしょうか…?先にルーティングの書き方を直すことにします。

Laravelのルーティングを修正

Laravel8からはルーティングの書き方が変わっちゃいまして、こうだったのが

Route::get('/login', 'LoginController::login');

こう書かないといけなくなりました。

Route::get('/login', [App\Http\Controllers\LoginController::class, 'login']);

Laravel7時点でどちらでも行ける状態だったらしいのですが、6.2くらいで止まっていたので知りませんでした🤣

結構な量あるので直すの面倒くさかったけど、全部直しましたよ!そしたらルーティング回りで出ていたエラーがなくなりました。

Laravelのヘルパーを修正

いくつかは動いたのですが、一部ページでこんなエラーが出ました。

Call to undefined function Hgs3\Models\Game\array_pluck()

5.xの後半の方から非推奨だったらしいです…5.5ですからね、動かないはずですわ。次回からヘルパー修正に入っていきます。

2020.11.26(木) – ヘルパーを直しました。2つを置換してみたところ、だいたい動いているっぽいです。

  • array_pluck → Illuminate\Support\Arr::pluck
  • camel_case → Illuminate\Support\Str::camel

まだ修正すべき箇所はありそうですが、目視による確認はこのくらいにしておきます。

だいたい動きました

ルーティングの修正がちょっと面倒でしたが、結局作業時間としては2~3時間である程度動くところまでもっていけました。これにてソース修正は一旦完了とします。
全体の動作チェックは開発サーバーでPHPUnitやSeleniumを使ってやろうと思います。これからひたすらテストコードを書く作業が始まる…

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA