for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Brazanation\Documents\StateRegistration;
abstract class State implements StateInterface
{
/**
* @var string
*/
private $state;
* @var int
private $length;
private $regex;
private $format;
private $numberOfDigits;
* State constructor.
*
* @param string $state
* @param int $length
* @param int $numberOfDigits
* @param string $regex
* @param string $format
public function __construct(string $state, int $length, int $numberOfDigits, string $regex, string $format)
$this->state = $state;
$this->length = $length;
$this->regex = $regex;
$this->format = $format;
$this->numberOfDigits = $numberOfDigits;
}
* {@inheritdoc}
public function getState() : string
return $this->state;
public function getLength() : int
return $this->length;
public function getRegex() : string
return $this->regex;
public function getFormat() : string
return $this->format;
public function getNumberOfDigits() : int
return $this->numberOfDigits;
public function normalizeNumber(string $number) : string
return preg_replace('/\D/', '', $number);
public function extractBaseNumber(string $number) : string
return substr($number, 0, -($this->getNumberOfDigits()));
public function extractCheckerDigit(string $number) : string
return substr($number, -($this->getNumberOfDigits()));