最初にいくつかの背景。最近、Zend_Db_Table ベースのソリューションからエンティティ ベースのソリューション (Doctrine) に変更しました。私たちのアプリケーションが成長するにつれて、テーブル クラスはますます醜くなりました。一部のテーブルでは、ENUM 列を使用して文字列ベースのキーを格納し、静的メソッドを使用して人間が判読できる文字列に変換しました。このようなもの:
public static function getProductType($productKey)
{
if (!array_key_exists($productKey, self::$productTypes)) {
return null;
}
return self::$productTypes[$productKey];
}
public static function getProductTypes()
{
return self::$productTypes;
}
エンティティ ベースのシステムに移行するにあたり、可能な限り静的メソッドを避けるようにしました。キーから値への変換をビュー ヘルパーに移動し、1 日で終了しました。最終的に、JSON オブジェクトでそれらを返す必要があり、プレゼンテーション レイヤーの外側で発生した (つまり、ビュー ヘルパーに直接アクセスできない) ため、これでは不十分であることがわかりました。
これらのタイプの方法の適切な場所に関する理論を誰かが持っていますか? キーから人間が読める値への変換を行うための別のオブジェクトを作成するか、エンティティ オブジェクトに静的メソッドを実装する必要がありますか?