/** * @param DataInterface $data * @param string $familyCode * * @throws WrongFamilyException */ public static function assertFamily(DataInterface $data, $familyCode) { if ($data->getFamilyCode() === $familyCode) { return; } $backtrace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2); $function = $backtrace[1]['class'] . '::' . $backtrace[1]['function']; $m = "Argument 1 passed to {$function} must be of family {$familyCode}, {$data->getFamilyCode()} given"; throw new self('WrongFamilyException: ' . $m, 0, E_RECOVERABLE_ERROR, $backtrace[0]['file'], $backtrace[0]['line'], []); }