/** * @throws \InvalidArgumentException se o código de endereçamento postal (CEP) * `$cepString` for inválido * * @param string $cepString * @return self */ public static function fromString($cepString) { $cepString = (string) $cepString; if (!Validator::postalCode('BR')->validate($cepString)) { throw new \InvalidArgumentException(sprintf('O CEP `%s` é inválido', $cepString)); } return new self($cepString); }
public function validateAddress($address) { //@TODO: properly check all types.. strings need to be double checked for alnum, cause of typecasting. $rules = v::key('firstname', v::notEmpty()->setName('First name'))->key('lastname', v::notEmpty()->setName('Last name'))->key('address', v::alnum(".,-'")->notEmpty()->setName('Address'))->key('secondary_address', v::when(v::notEmpty(), v::alnum(".,-'"), v::alwaysValid())->setName('Address 2'))->key('city', v::alnum()->notEmpty()->setName('City'))->key('state', v::alnum()->notEmpty()->setName('State'))->key('zip', v::when(v::notEmpty(), v::postalCode('US'), v::alwaysValid())->notEmpty()->setName('Zipcode')); if ($rules->validate($address)) { return true; } try { $rules->check($address); } catch (ValidationExceptionInterface $exception) { // $this->error = $exception->getMainMessage(); } return false; }