Для конкретной функции, которую вы хотите, вам нужно создать пользовательскую функцию. Честно говоря, логика магической функции __call () не так уж сложна.
Нечто подобное должно сработать:
public function __call($function, $args)
{
// Expects findBy to be the first part of the function
$criteria = substr($function, 6);
$criteria = strtolower($criteria);
$select = $this->select()
->from($this->_name)
->where($criteria . ' = ?', $args);
}
Очевидно, что если вы хотите, чтобы он обрабатывал более сложные случаи, такие как массивы или параметры с несколькими критериями, вам необходимо реализовать более эффективную проверку, но это должно дать основную идею.