trueValue = $trueValue; $this->falseValue = $falseValue; } /** * Converts the given value so that it can be extracted by the hydrator. * * @param bool $value The original value. * @throws InvalidArgumentException * @return int|string Returns the value that should be extracted. */ public function extract($value) { if (!is_bool($value)) { throw new InvalidArgumentException(sprintf( 'Unable to extract. Expected bool. %s was given.', is_object($value) ? get_class($value) : gettype($value) )); } return $value === true ? $this->trueValue : $this->falseValue; } /** * Converts the given value so that it can be hydrated by the hydrator. * * @param int|string $value The original value. * @throws InvalidArgumentException * @return bool Returns the value that should be hydrated. */ public function hydrate($value) { if (!is_string($value) && !is_int($value)) { throw new InvalidArgumentException(sprintf( 'Unable to hydrate. Expected string or int. %s was given.', is_object($value) ? get_class($value) : gettype($value) )); } if ($value === $this->trueValue) { return true; } if ($value === $this->falseValue) { return false; } throw new InvalidArgumentException(sprintf( 'Unexpected value %s can\'t be hydrated. Expect %s or %s as Value.', $value, $this->trueValue, $this->falseValue )); } }