Slide 14
Slide 14 text
Assertions Usage
final class GeoHash
{
// ...
private static function fromArray(array $payload, string $issuer): self
{
Assertion::keyExists($payload, 'lat', 'Payload is missing a "lat" (latitude) key.');
Assertion::keyExists($payload, 'lng', 'Payload is missing a "lng" (longitude) key.');
Assertion::keyExists($payload, 't', 'Payload is missing a "t" (type) key.');
Assertion::keyExists($payload, 'p', 'Payload is missing a "p" (provider) key.');
Assertion::numeric($payload['lat'], 'The "lat" key must contain a valid numeric value.');
Assertion::numeric($payload['lng'], 'The "lng" key must contain a valid numeric value.');
Assertion::notEmpty($payload['p'], 'The "p" key must contain a non empty string.');
Assertion::inArray($payload['t'], AddressComponents::TYPES);
return new self($payload['lat'], $payload['lng'], $payload['t'], $payload['p'], $issuer);
}
}