Add tests for featured thumbnail generation; apply Pint formatting and related edits

This commit is contained in:
2026-05-06 18:55:40 +02:00
parent 7a8bc8e22a
commit 82f2b1f660
65 changed files with 11325 additions and 49545 deletions

View File

@@ -183,14 +183,32 @@ final class UploadDerivativesService
* @return array<string, array{path: string, size: int, mime: string}>
*/
public function generatePublicDerivatives(string $sourcePath, string $hash): array
{
return $this->generateSelectedPublicDerivatives(
$sourcePath,
$hash,
array_keys((array) config('uploads.derivatives', [])),
);
}
/**
* @param list<string> $variants
* @return array<string, array{path: string, size: int, mime: string}>
*/
public function generateSelectedPublicDerivatives(string $sourcePath, string $hash, array $variants): array
{
$this->assertImageAvailable();
$quality = (int) config('uploads.quality', 85);
$variants = (array) config('uploads.derivatives', []);
$configuredVariants = (array) config('uploads.derivatives', []);
$written = [];
foreach ($variants as $variant => $options) {
$variant = (string) $variant;
foreach ($variants as $variant) {
$variant = strtolower(trim((string) $variant));
if ($variant === '' || ! array_key_exists($variant, $configuredVariants)) {
continue;
}
$options = (array) $configuredVariants[$variant];
if ($variant === 'sq') {
$written[$variant] = $this->generateSquareDerivative($sourcePath, $hash);