escaper = $escaper ?: new Escaper(); } /** * @param non-empty-string $emailAddress * @param positive-int $imageSize * @param AttributeSet $imageAttributes * @psalm-param value-of|string $defaultImage * @psalm-param value-of $rating */ public function __invoke( string $emailAddress, int $imageSize = 80, array $imageAttributes = [], string $defaultImage = self::DEFAULT_MP, string $rating = self::RATING_G ): string { $imageAttributes['width'] = $imageAttributes['height'] = $imageSize; $imageAttributes['alt'] = $imageAttributes['alt'] ?? ''; $imageAttributes['src'] = sprintf( '%s/%s?s=%d&r=%s&d=%s', self::GRAVATAR_URL, md5(strtolower(trim($emailAddress))), $imageSize, $rating, $this->escaper->escapeUrl($defaultImage) ); return sprintf( '', (string) new HtmlAttributesSet($this->escaper, $imageAttributes) ); } }