for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace JeroenDesloovere\VCard\Parser\Property;
use JeroenDesloovere\VCard\Property\Address;
use JeroenDesloovere\VCard\Property\NodeInterface;
use JeroenDesloovere\VCard\Property\Parameter\Type;
final class AddressParser extends PropertyParser implements NodeParserInterface
{
public function parseVcfString(string $value, array $parameters = []): NodeInterface
$address = $this->parseAddress($value);
if (array_key_exists(Type::getNode(), $parameters)) {
$address->setType($parameters[Type::getNode()]);
}
return $address;
private function parseAddress(string $value): Address
@list(
$postOfficeBox,
$extendedAddress,
$streetAddress,
$locality,
$region,
$postalCode,
$countryName
) = explode(';', $value);
$this->convertEmptyStringToNull([
]);
return new Address($postOfficeBox, $extendedAddress, $streetAddress, $locality, $region, $postalCode, $countryName);