質問: new Carbon();こちらのようにカーボンインスタンスを作成すれば現在の日付が取得できる為、必要ないのではないかなと思った次第でして。 カレンダーを作成するには、上記2つの引数は必要となってくるのでしょうか...?
回答: これはCarbon関係なく一般的な考え方の話です。 > > $date = new Carbon();こちらのようにカーボンインスタンスを作成すれば現在の日付が取得できる > > > 常に当月しか表示されないカレンダーができます。 前月、次月のカレンダーを確認したい時にどうしますか? それより前、もっと前のカレンダーを確認したいとき。 当月の時は$year,$monthがURLパラメータに設定されないときとかもあるでしょう。 Laravelのルーティングには必須パラメータと任意パラメータがありますし。 初期当月とするのであればパラメータに何も指定しない(URLがキレイだから)という仕様にすることもあります。 URLパラメータでなくても入力値でカレンダーを作りたい時もあります。 そういうときに引数で渡す際にデフォルトで当月の$year,$monthを渡しておき、それ以外は渡されたパラメータをセットすれば任意の月のカレンダーを作れます。 CarbonでなくてもLaravelでなくても、PHPでなくても、考え方は同じです。 **任意の月のカレンダーを作るために**必要な引数です。 常に当月だけで良いなら引数と$dateStrを作る処理は不要かもしれませんが 変更が発生しないシステムは存在しないと言っても良いので、引数により作るようにしておけば 変更に強い実装となります。 ※この考え方はカレンダーに限らず様々な場面で使えます。 「これしかない」前提で作るとどんどんファットでスパゲッティなコードになっていきます。 役割分担の考え方です。1つの機能で短い記述でなるべく多くの仕事をこなせたほうがコードはスッキリします。