public static function argumentType($name, $internalType, $subject)
{
$actual = gettype($subject);
if ($actual !== $internalType) {
throw new InvalidArgumentException(sprintf('Parameter %s must be of type %s, %s given', $name, $internalType, $actual));
}
}