Laravelのサービスプロバイダーでのconfig()設定
最近Laravelを使用し始めたLaravel初心者です。
ちょっとLaravelの理解怪しいとろこあると思うのでおかしなこと言ってたらすみません。
仕事でLaravelを触り初めて、前任の方が実装したコードに機能追加をする作業をしています。
それでちょっと気になった部分があったのでリファクタリングしたいと思っています。
実務で使用しているコードの為掲載できないのですが、概要を書くと
現状のコード
・サービスプロバイダー(AppServiceProvider.php)でconfigヘルパーを利用してAテーブルから全体で利用するデータを設定している。
・configヘルパーで設定した値をコントローラーやviewで利用。
やりたいこと
・sessionにidが設定されている場合はA'テーブル(データ構造はAとほぼ同じ)の値を読み込む用にする。
・sessionにidが設定されていない場合はAテーブルの値を読み込む。
・ただし、sessionにidが設定されていてもA'テーブルのフィールドにデータがなければAテーブルのフィールドのデータを読み込む。
↑ここまでは出来た
・サービスプロバイダーとミドルウェアに同じような処理がいるのでどちらかにまとめたい。
・できれば親クラスでAテーブルのデータを取得して小クラスでA'テーブル値を取得するような形にしたい。
(親子関係や無理にOOPを使わなくいとしても、あとで見てわかりやすいような実装にしたい。(できればOOP使ってみたい))
・引き続き、configの値を設定して利用する。
やったこと
・サービスプロバイダーではsessionが利用出来ないようだったので、sessionにidがあるかどうかの判定はミドルウェアで実装した。
・sessionにidがある場合はconfigヘルパーの設定を上書きするようにミドルウェアを実装したら仕様は満たしたが、正しい実装かわからない。
という状況です。これで伝わるかわからないのですが、どなたか良いやり方ご存知の方いらっしゃいましたらご教示いただけますと大変助かります。