$id = (int)$request->id; switch (true) { case ($id === 1): $hoge = 'aaa'; $foo = 'bbb'; break; case ($id === 2): $hoge = 'aaa'; $hogehoge = 'aaawww'; $foo = 'bbb'; break; case ($id === 3): $hoge = 'aaa'; $foo = 'bbb'; $foohoge = 'bbbrrr'; break;
このような条件分岐があった場合に、仕様の変更に強いコードを書くにはどうすればいいのでしょうか?
例:仕様の変更に強いコードとは、idが変更されてもコードを最小限に修正するだけで済むことをさす。
現状は、以下のように書いています。
$id = (int)$request->id; switch (true) { case ($id === 1): $hoge = 'aaa'; $foo = 'bbb'; return view('admin.test', compact( 'hoge', 'foo', )); break; case ($id === 2): $hoge = 'aaa'; $hogehoge = 'aaawww'; $foo = 'bbb'; return view('admin.test', compact( 'hoge', 'hogehoge', 'foo', )); break; case ($id === 3): $hoge = 'aaa'; $foo = 'bbb'; $foohoge = 'bbbrrr'; return view('admin.test', compact( 'hoge', 'foo', 'foohoge', )); break;
自分なりの問題点としては、数字がもし変更された場合に変数やretrunも修正する必要があって手間。
なので、数字の変更に強くてかつreturnをいちいち書かなくてもいいようなコードの書き方があればご教示ください。