90) { throw new InvalidArgument(sprintf($message ?: 'Latitude should be between -90 and 90. Got: %s', $value)); } } /** * @param float $value * @param string $message */ public static function longitude($value, string $message = '') { self::float($value, $message); if ($value < -180 || $value > 180) { throw new InvalidArgument(sprintf($message ?: 'Longitude should be between -180 and 180. Got: %s', $value)); } } /** * @param mixed $value * @param string $message */ public static function notNull($value, string $message = '') { if (null === $value) { throw new InvalidArgument(sprintf($message ?: 'Value cannot be null')); } } private static function typeToString($value): string { return is_object($value) ? get_class($value) : gettype($value); } /** * @param $value * @param $message */ private static function float($value, string $message) { if (!is_float($value)) { throw new InvalidArgument( sprintf($message ?: 'Expected a float. Got: %s', self::typeToString($value)) ); } } }