顧客提供のレコードから取得した住所データを表示し、適切にフォーマットしようとしています。各クライアントは、顧客データの表示方法を指定できるため、php のsprintf()とそのフォーマット機能を利用する編集可能な JSON ベースのテンプレートをクライアントごとに使用しています。
したがって、クライアント A は、アドレスを次のように表示したいと考えています。
Bill Smith
123 Fake St
Whoville, OH
の保存形式になり%s<br>%s<br>%s, %s
ます。
クライアント B は次のことを望んでいます。
Bill Smith
123 Fake St, Whoville, OH 94301
の保存形式で%s<br>%s, %s, %s %s
次に、これらのフォーマットをクライアント固有のテンプレートに保存します。このテンプレートは、取得するフィールドとフォーマットを教えてくれます。つまり、次のようになります。
{
"fields": [
"full_name",
"street",
"city",
"state",
"zip"
],
"format": "%s<br>%s, %s, %s %s"
}
JSON をデコードし、データを取得しsprintf()
て、提供された形式を使用して書き込むことはうまく機能し、さまざまなアドレス形式を処理するためにカスタム形式の関数を作成する必要はありません。問題は、データの一部が空の場合、それが表示されることです。つまり、住所が欠落している場合、次のようになります。
Bill Smith
, Whoville, OH 94301
車輪の再発明を必要としないソリューションを考え出そうとしていますが、対応する柔軟なフォーマットで「オプション」データを柔軟に処理できる他のアーキテクチャを受け入れることができます。