私のコメントに続いて:
"I am not aware of any such library to do this, but as a rough guide I think you probably want to create some kind of adapters which all use a common interface. These adapters can then be written to deal with the conversion you are trying to achieve via some open-source library. Manipulating the output might be a good excuse to use the decorator pattern :) Sorry I could not be of much more help."
私があなたが求めていると思うものの例は次のとおりです。
アダプターのインターフェース
interface DataConvertor
{
public function convert(DataInterface $data);
}
渡すデータのインターフェイス (データは、作業するための共通のインターフェイスを持つオブジェクトでもあります)。
interface DataInterface
{
/**
* returns a json string
*/
public function asJson();
}
次に、サードパーティのライブラリで使用するアダプターを作成できます。
class SomeThirdPartyNameAdapter implements DataConvertor
{
public function convert($data)
{
//some logic here to make my data object with a known asJon method
//suitable for use for some 3rd party library, and use that library.
$rawJson = $data->asJson();
//manipulate this as needed ($compatibleData)
$thirdPartyLib = new ThirdPartyLib();
return $thirdPartyLib->thirdPartyMethod($compatibleData);
}
}
明らかに、これは単なる大まかなガイドであり、抽象化できる部分が他にもある場合があります (たとえば、アダプターに DataConvertor インターフェイスを実装させるだけでなく、一部の機能を継承するために一部の抽象クラスを拡張したり、インターフェイスに追加する他のメソッドを追加したりします)。
お役に立てれば