Я пишу немного доморощенного ORM (академический интерес). Я пытаюсь придерживаться концепции TDD в качестве учебного упражнения, и как часть этого упражнения я пишу документацию для API по мере разработки класса.
Показательный пример - я работаю над классическим классом отображения типа "getCollection". Я хочу, чтобы он мог получать коллекции ресурса X (скажем, сообщения в блоге) для конкретного пользователя, а также коллекции, основанные на произвольном массиве числовых значений. Итак, у вас может быть такой метод, как любой из этих
$User = $UserMapper->load(1);
$ArticleCollection = $ArticleMapper->getCollection(range(10,20));
$ArticleCollection = $ArticleMapper->getCollection($User);
$ArticleCollection = $ArticleMapper->getCollection($User->getId());
Итак, при написании документации для метода getCollection - я хочу объявить переменную @param в Docblock. Лучше ли иметь уникальный метод для каждого типа аргумента или приемлемо иметь метод, который делегирует правильный внутренний метод / класс на основе типа аргумента?