ジレンマ:
価格データを保存する必要があるオプションがあります。
各オプションには、コストを決定するための異なる数式を指定できます。
たとえば、あるオプションの総コストはコスト * 平方フィートになりますが、別のオプションはコスト * 周囲フィートになりますが、別のオプションは固定コストのままです。
これらのオプションは、私の会社が所有するいくつかのサイトによってデータベースから取得されています。
これらの各サイトは、まったく同じ方法でオプションの価格を計算できる必要があります。
現在、各サイトには、データベースからデータを取得し、その計算方法を決定する PHP コードがあります。
この方法の問題点は、価格の計算方法を変更する場合があり、その場合、価格設定モジュールのリポジトリを編集して、これらのサイトのいずれかをホストする各サーバーに更新する必要があることです。
より良い解決策を探しています。
データベースのオプション レコードに式を保存するというアイデアをいじっています。その後、各サイトは単純にオプションを呼び出し、そこに保存されている式にデータを適用し、式を実行する必要があります。
さて、これは で実行できますがeval()
、実際にはそのようにしたくありません。
私がやろうとしていることをより明確に理解できるように、例を評価します。
$product->width = 3;
$product->length = 4;
$formula = $option->cost_formula; // $product->width * $product->length * $option->cost
eval($formula);
他の誰かが他の解決策を持っていますか?