Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for hirobe hirobe
March 24, 2023

フレームワークが存在しない時代からのレガシープロダクトを、 Laravelに”載せる”実装戦略

PHPerKaigi2023 LT登壇資料です

Avatar for hirobe

hirobe

March 24, 2023
Tweet

More Decks by hirobe

Other Decks in Programming

Transcript

  1. #phperkaigi Mail Dealerの”負債” • グローバルスコープにロジックが存在する ◦ 〇〇.phpファイルに直接アクセス、ルーティングもない ◦ ビューロジックとビジネスロジックが混在している •

    テンプレートエンジンは未使用 ◦ HTMLの出力は print や echo で行う • 当然クラスの概念も(ほぼ)存在しない 処理が上から下に流れるだけ 5
  2. #phperkaigi ビジネスロジックをLaravelに載せる 1. 処理のまとまりごとに、クラスメソッド化 a. PhpStormの機能を使って、機械的にメソッド化 参照渡しやグローバル変数を利用することを許容する 2. 旧UIを利用して、動作確認 3.

    処理ごとにAction(リクエスト)を分け、新UIからは処理ごとに 個別のエンドポイントを呼び出して更新処理等を行う 21 既存コードを 維持できる!
  3. #phperkaigi 効果 • 移植がスピーディに ◦ 新UIのためにコードを書き直す必要が(ほぼ)ない ◦ 旧UIの構造が(ほぼ)そのまま維持されているので、移植忘れも少なく ◦ 差分が見やすくコードレビューもしやすい

    • テストが可能になった ◦ 旧:表示データがそのまま出力されており、テストが困難 ◦ 新:データが返り値として表現されるため、テストが容易に 32