numberExtension = $numberExtension ?: new Number(); } private function ean(int $length = 13): string { $code = Extension\Helper::numerify(str_repeat('#', $length - 1)); return sprintf('%s%s', $code, Calculator\Ean::checksum($code)); } public function ean13(): string { return $this->ean(); } public function ean8(): string { return $this->ean(8); } public function isbn10(): string { $code = Extension\Helper::numerify(str_repeat('#', 9)); return sprintf('%s%s', $code, Calculator\Isbn::checksum($code)); } public function isbn13(): string { $code = '97' . $this->numberExtension->numberBetween(8, 9) . Extension\Helper::numerify(str_repeat('#', 9)); return sprintf('%s%s', $code, Calculator\Ean::checksum($code)); } }