前提・実現したいこと
postgresql, laravelを利用してアプリケーションを作成しています。
よく使うSQLがあるのでそれを切り出してPHPでのメソッドのようにしたいです。理由としては
何回も使うしテストができるようにしたいためです。
試したこと
現在はストアドプロージャーを使って計算名ごとにSQLを登録しています。
php
1// 例:消費税率計算 2private static function amount(){ 3 $create_sql = <<< EOF 4CREATE OR REPLACE FUNCTION amount(INTEGER) 5RETURNS INTEGER AS $$ 6 SELECT $1 * 1.08 AS amount 7$$ LANGUAGE sql; 8EOF; 9 return $create_sql; 10 } 11 12 public static function registerFunction(array $function_names = self::ALL_FUNCTIONS){ 13 foreach ($function_names as $function){ 14 // 登録 15 $sql = self::$function(); 16 \DB::statement($sql); 17 } 18 }
この方法だとストアドプロージャーを管理するために登録コマンドなどを用意しなければいけません。
他に良い方法ご存知の方いらっしゃいませんか?
補足情報(FW/ツールのバージョンなど)
laravel: 6.5.2
postgresql: 10.6
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。