Como compactar HTML no CodeIgniter

25 de janeiro de 2012, em Dicas, Tutoriais, por Tárcio Zemel

CodeIgniter: como compactar HTML (imagem ilustrativa)

Exatamente ontem surgiu num repositório fork do CodeIgniter uma novidade muito interessante: uma feature para compactar HTML! Apesar de não ser oficial, fiz alguns testes e está tudo funcionando muito bem! Portanto, compactar HTML no CodeIgniter agora é possível e, acredite, os resultados são incríveis!

Baixando a nova classe de Output

A primeira coisa a se fazer é substituir a classe nativa de Output do CodeIgniter pela que tem as modificações. Então, copie a Output Class modificada e coloque em /system/core (para os mais cautelosos, um backup é sempre bem-vindo).

Ativando a compactação de HTML

Assim como pode ser visto na pull request da compatação de HTML no CodeIgniter, a partir do momento em que a nova Output Class está presente, é preciso ativar a funcionalidade de compactar através de uma diretiva de configuração.

Por padrão, esta diretiva estaria presente em application/config/config.php, mas, como ela não existe, é preciso criá-la. Então, em qualquer ponto do arquivo config.php (ou outro arquivo de configuração que você esteja usando), inclua a seguinte diretiva:

$config['minify_output'] = TRUE;

E pronto! A partir de agora o CodeIgniter comprime toda e qualquer saída de HTML (e CSS inline) que passar pela Output (que, caso você esteja usando corretamente a abordagem MVC no CodeIgniter, significa a exibição nas views).

Conclusão sobre compactação de HTML no CodeIgniter

Apesar de (ainda) não ser um recurso oficial do CI e que, não há que se duvidar, ainda ganhará melhorias, realmente vale a pena, pelo menos, testar a compactação (embora já esteja estável o suficiente para ser usado em ambiente de produção).

<update>
Como esperado, as alterações na classe de Output já foram para o repositório oficial. O pessoal ainda está discutindo melhorias, portanto, fique ligado!
</update>

Claro que há muitos fatores a se considerar, mas estima-se que esta compactação reduza o tamanho da saída HTML em 10~15% (chegando, em alguns casos, a incríveis 30%), o que é bastante considerável! Com isso, a transferência de recursos no servidor e exibição de conteúdos, consequentemente, também ficam mais rápidos.

E tudo isso pode ficar ainda melhor quando se usa cache para os conteúdos! Mas isso já é assunto para outro artigo… ;-)

6 comentários em "Como compactar HTML no CodeIgniter"

gravatar

Hugo Fittipaldi  em 25 de janeiro de 2012

Oi Tárcio, quando eu fiz o indicado, a página simplesmente carregou o conteúdo da página https://github.com/atiredmachine/CodeIgniter/blob…

gravatar

Hugo Fittipaldi  em 25 de janeiro de 2012

Correção: houve um erro ao baixar o arquivo. Baixei de novo e funcionou!

gravatar

Tárcio Zemel  em 25 de janeiro de 2012

Maravilha! ;-)

gravatar

Marcelo Diniz  em 26 de janeiro de 2012

Muito bom mesmo, mas fiz alguns testes e tive um erro, não sei ao certo pq, mas me passava links com meusite.com.br/a#link e não entendi pq ele colocava esse "a#" , não tive tempo para olhar ainda o pq disso, mas se eu tiver um tempo dou uma olhada, se não espero atualização.

gravatar

Tárcio Zemel  em 26 de janeiro de 2012

Que curioso, rapaz… Apesar de ter funcionado perfeito pra mim, se descobrir algo, diga pra gente!

gravatar

thor  em 2 de fevereiro de 2012

poxa, gostaria que saisse um plugin do CI para o netbeans !!! ja existem alguns plugins de frameworks por la …

Comente!