Пишу DataMapper, у реализаций прописываются строки для инсёрта и селекта. Кроме того, у каждого маппера прописан целевой класс. Например:
class TaskMapper extends Mapper
{
const TARGET_CLASS = "Task";
protected static $find = "SELECT * FROM %s WHERE %s = ?";
...
}
Вопрос - эти два значения лучше сделать статическими свойствами, или константами? По какому принципу вообще делать выбор между двумя этими вариантами?
И есть еще третий вариант - метод:
public function getTargetClass()
{
return 'Task';
}
Так что же выбирать?