protected function _getKey(Subject $subject, $reader, $key) { $callable = $this->reader($reader); if ($callable === null || !is_callable($callable)) { throw new Exception('Invalid reader: ' . $reader); } return $callable($subject, $key); }