Tudo o que quer saber antes de instalar.
Uma análise detalhada de como o DataFirefly Image Optimizer: WebP, AVIF, compressão e CDN para Shopware 6 funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.
O problema das imagens no Shopware 6 por predefinição
O Shopware comprime os JPEG através do ThumbnailService nativo e gera vários tamanhos de miniaturas, mas não produz WebP nem AVIF. Ora, o WebP poupa em média 25 a 35 % face ao JPEG e o AVIF desce ainda mais, entre 50 e 60 % de ganho face ao JPEG na maioria dos casos. Sem estes formatos, o seu Largest Contentful Paint mantém-se pesado e a pontuação de Core Web Vitals estagna. Sem integração de CDN nativa, cada imagem é servida a partir do seu servidor de aplicação, o que aumenta a carga e a latência para os visitantes distantes.
O pipeline completo que esta extensão instala
No carregamento de um média, o subscriber escuta media.written e deteta os tipos JPEG, PNG e GIF. A compressão no local do original é aplicada se estiver ativa: JPEG progressivo com subamostragem 2x2/1x1/1x1 e qualidade configurável, PNG com nível de compressão e filtros afinados. Os metadados EXIF e ICC são removidos se a opção estiver assinalada, com um ganho de peso nada desprezível nas fotografias que saem diretamente de uma máquina. Depois é gerado o sibling WebP ao lado, com uma extensão acumulada, foo.jpg.webp, segundo a qualidade configurada, com modo lossless opcional para os PNG. A seguir é gerado o sibling AVIF com a sua própria qualidade, independente, e um limite de largura máxima para evitar saturar o CPU em imagens muito grandes. Por fim, as miniaturas do Shopware recebem o mesmo tratamento.
Reescrita de CDN com âmbito fino
A integração com CDN não se limita a reescrever cegamente todos os URLs. Estão disponíveis três âmbitos: apenas média, que só toca nos URLs começados por /media; média mais miniaturas, que acrescenta /thumbnail; e todos os recursos estáticos, que inclui também /theme, /bundles e /assets. O âmbito predefinido, apenas média, é o mais seguro e cobre 95 % das necessidades. O filtro Twig df_cdn permite ainda aos programadores de temas aplicar a reescrita manualmente a qualquer URL. Quando o CDN está ativo, a extensão injeta automaticamente dns-prefetch e preconnect no head, o que poupa 50 a 200 ms no primeiro pedido ao CDN, consoante a latência.
Renderização picture conforme às boas práticas
O componente storefront/component/image/thumbnail.html.twig é estendido com sw_extends. O bloco component_thumbnail_picture envolve a etiqueta img principal num picture com sources AVIF e depois WebP, seguidas do original como alternativa. A ordem é crucial: AVIF primeiro porque os navegadores recentes o preferem e poupam assim mais largura de banda, WebP em segundo como rede de segurança para o Safari antigo, e a alternativa JPEG/PNG para tudo o resto. Os atributos loading lazy, decoding async, width e height para prevenir o CLS são acrescentados conforme a configuração.
Tarefa agendada para as imagens já em base de dados
Ativar a extensão numa loja que já tem milhares de imagens em base de dados não desencadeia a otimização retroativa automaticamente, o que seria perigoso. Em vez disso, uma tarefa agendada do Shopware corre por predefinição a cada 15 minutos, identifica os médias ainda não otimizados através de um LEFT JOIN em df_image_optimizer, e trata um lote configurável, 50 por predefinição. Isso permite recuperar uma loja grande em algumas horas sem bloquear a fila nem saturar o servidor. Um botão no painel de administração permite também lançar um lote manual a qualquer momento, para testes ou recuperações pontuais.
Deteção transparente do servidor
Ainda antes da primeira otimização, o painel apresenta em tempo real o que está disponível no servidor: versão do PHP, presença do Imagick com os formatos suportados, presença do GD com os seus formatos, suporte efetivo de WebP e de AVIF, e o motor recomendado. O Imagick é prioritário quando está disponível, por oferecer melhor qualidade de codificação e suporte AVIF nativo através do libheif. Caso contrário, o GD assume, com suporte WebP há muito tempo e AVIF desde o PHP 8.1. Sem surpresas: se o AVIF não estiver disponível no servidor, a extensão salta simplesmente essa etapa e continua com WebP, em vez de falhar.
Segurança e limpeza
As conversões são atómicas: a extensão coloca a imagem num ficheiro temporário local para os conversores que precisam de um caminho real, e limpa sistematicamente com um bloco finally. Os erros são registados através do PSR Logger sem nunca interromper a transação de escrita do média: um carregamento bem-sucedido nunca será bloqueado por uma conversão que falhe. A desinstalação propõe conservar ou não os dados do utilizador: as tabelas df_image_optimizer só são eliminadas se desmarcar a opção. Os ficheiros WebP e AVIF gerados no sistema de ficheiros ficam por segurança, e um script de uma linha permite limpá-los se for necessário.
Para quem é esta extensão?
Para qualquer loja Shopware 6 em que as imagens sejam um estrangulamento no LCP ou na largura de banda. Para lojas B2C com catálogos fotográficos ricos, como moda, decoração, mobiliário ou alimentação. Para lojas internacionais que entregam longe do servidor de origem e querem descarregar para um CDN. Para programadores de temas que querem um filtro e uma função Twig limpos em vez de improvisar as etiquetas img à mão. Para equipas de SEO que acompanham os Core Web Vitals e querem ganhar facilmente 20 a 40 pontos de PageSpeed.
Ainda não existem avaliações.