Como compactar HTML no CodeIgniter
25 de janeiro de 2012, em Dicas, Tutoriais, por Tárcio Zemel

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… ;-)
9 comentários em "Como compactar HTML no CodeIgniter"
Hugo Fittipaldi em 25 de janeiro de 2012
Correção: houve um erro ao baixar o arquivo. Baixei de novo e funcionou!
Tárcio Zemel em 25 de janeiro de 2012
Maravilha! ;-)
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.
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!
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 …
Anderson em 6 de abril de 2012
Tácio, o processo de compactação é o mesmo que deve ser usado para doiminuir o peso d euma página no wordpress?
Tárcio Zemel em 8 de abril de 2012
Na verdade, usando CodeIgniter, WordPress, ou qualquer outro, pensar na performance do site é sempre interessante. Então, quando for possível usar compactação, não somente para HTML, mas, também, para JavaScript e CSS, é sempre bom! :-)
Francis em 12 de maio de 2012
É a primeira vez que vejo um fw php utilizando compactação de html como oficial ;p
Combinada com a de cachê, tudo se torna perfeitamente estável tanto para o usuário também e não apenas alivia o tempo de execução do lado do servidor.


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…