Два метода или один с условием?
=================================

 Постоянно встречаюсь с задачей вытягивать из БД данные того или иного объекта. Причем как правило вытягивать их надо или по ID, или по имени (оба ключа уникальны).  

Вопрос - создавать в классе менеджера материалов два метода getById и getByName или создать один get($key), в котором проверять, $key - это int или string, и соответственно менять where clause на id=$key или name=$key?  

Так как кроме этого поля оба метода вышли бы идентичными. 

 Я бы не ориентировался на тип, если в будущем понадобится вытаскивать данные по другому полю с таким же типом - ваша логика рухнет, и будет у вас метод get(), который работает только с id и name, но не работает с другими полями.  
  

Как вариант, можно сделать метод get($field_name, $value) 

 getBy($field, $value); 

 2