Closed13

Read slimphp/Slim-Skelton

sutoneasutonea

vendor ディレクトリは .gitignore に記載されていた。

sutoneasutonea

https://github.com/slimphp/Slim-Skeleton/blob/master/app/settings.php を読む。どうやら、これは ContainerBuilder を受け取る関数を定義しており、アプリケーションの設定をする役割を持っているようだ。
アプリケーションにおけるエラー表示の有無、ログ出力の有無、ログ出力設定が記載されていた。
https://github.com/slimphp/Slim-Skeleton/blob/195964e129e39936e5ddeed535b2f38755eec190/app/settings.php#L12-L26

sutoneasutonea

調査したところ、連想配列に値を設定しているようだった。SettingsInterface::classがキーで、無名関数が値。

sutoneasutonea

ここまで読んだコードについて、気になる点を https://php-di.org/doc/ で調べてみる。

ContainerBuilder のインスタンスメソッド addDefinitions の利用例が Configuring the container に記載されていた。これを読む限り、DIコンテナに設定を追加する方法は2通りあって、一つは Container のコンストラクタ引数に渡すという方法。もう一つは ContainerBuider のインスタンスメソッド addDefinitions を呼び出すという方法。後者の場合は設定の記述場所を分割することができ、柔軟性が高そうだ。

sutoneasutonea

app/middleware.php は以下。セッション管理用のミドルウェアを追加しているのだろうか。もし他に追加したい場合はこのファイルを編集すれば良さそう。
https://github.com/slimphp/Slim-Skeleton/blob/195964e129e39936e5ddeed535b2f38755eec190/app/middleware.php

app/routes.php は以下。Rails でいう config.routes に相当する役割を持っていそう。
https://github.com/slimphp/Slim-Skeleton/blob/195964e129e39936e5ddeed535b2f38755eec190/app/routes.php#L1-L27

このスクラップは2023/10/29にクローズされました