/** * @param Certificate $source * @param string $subject * @param string $issuer * @param bool $selfSigned * @param \DateTime $validFrom * @param \DateTime $validTo * @param string $serialNumber * @param array $subjectAlternativeNames */ public function __construct(Certificate $source, $subject, $issuer = null, $selfSigned = true, \DateTime $validFrom = null, \DateTime $validTo = null, $serialNumber = null, array $subjectAlternativeNames = []) { Assert::stringNotEmpty($subject, __CLASS__ . '::$subject expected a non empty string. Got: %s'); Assert::nullOrString($issuer, __CLASS__ . '::$issuer expected a string or null. Got: %s'); Assert::nullOrBoolean($selfSigned, __CLASS__ . '::$selfSigned expected a boolean or null. Got: %s'); Assert::nullOrString($serialNumber, __CLASS__ . '::$serialNumber expected a string or null. Got: %s'); Assert::allStringNotEmpty($subjectAlternativeNames, __CLASS__ . '::$subjectAlternativeNames expected a array of non empty string. Got: %s'); $this->source = $source; $this->subject = $subject; $this->issuer = $issuer; $this->selfSigned = $selfSigned; $this->validFrom = $validFrom; $this->validTo = $validTo; $this->serialNumber = $serialNumber; $this->subjectAlternativeNames = $subjectAlternativeNames; }