10 diferenças entre as versões 3 e 4 do CodeIgniter

10 diferenças entre as versões 3 e 4 do CodeIgniter

04/03/2020 0 Por Jonathan Lamim

Antes de falarmos sobre as diferenças é preciso conhecer um pouco do que ocorreu no espaço de tempo entre o lançamento da versão 3 e da versão.

Entre o lançamento da primeira versão estável do CodeIgniter 3 a do CodeIgniter 4 se passaram quase 5 anos, 1767 dias para ser mais preciso.

Nesse espaço de tempo muita coisa mudou na internet, foram lançadas 8 versões do PHP, surgiram diversos outros frameworks PHP e os que já estavam no mercado foram sendo atualizados.

Enquanto isso o CodeIgniter ia ficando para trás, deixando de ser um dos principais frameworks PHP para se tornar um dos mais desatualizados. Mas nem tudo estava perdido, A EllisLab que era a principal responsável pelo desenvolvimento do CodeIgniter passou o bastão pra o BCIT e então graças ao trabalho de Jim Perry (in memorian) e uma comunidade incrivelmente dedicada, o CodeIgniter começou a ganhar vida e a versão 4 ganhou seu primeiro alpha em 28 de setembro de 2018.

Em 24 de fevereiro de 2020, que seria aniversário de Jim Perry, foi lançado o CodeIgniter 4, em homenagem ao profissional que dedicou boa parte de seu tempo em trazer o framework de volta ao mercado, com condições de competir com os outros frameworks já existente e mais atualizados em relação a recursos e ao próprio PHP.

As diferenças entre as versões

O CodeIgniter 4 é muito diferente do 3 e a seguir você verá um pouco sobre as principais diferenças entre eles.

1 – Suporte a versões do PHP

Para utilizar o CodeIgniter 4 a versão mínima do PHP requerida é a 7.2, enquanto com o CodeIgniter 3 é possível utilizar a partir da versão 5.6 (que já foi completamente descontinuada).

2 – Organização de diretórios

A estrutura de arquivos é completamente diferente. O CodeIgniter 4 tem sua estrutura organizada em 5 diretórios: /app, /system, /public, /writable, /tests. Enquanto o CodeIgniter 3 é organizado em 2 diretórios: /application e /system.

3 – Utilização de namespaces

O CodeIgniter 4 é escrito por completo em PHP 7 e faz uso de namespaces, enquanto o CodeIgniter 3 não utiliza namespaces.

4 – Autoloading

O CodeIgniter 4 tem um processo de autoload muito mais eficiente, e um dos fatores que ajudam é o uso de namespaces. Enquanto que no CodeIgniter 3 é preciso configurar manualmente a maior parte dos arquivos a serem carregados.

5 – Uso de entidades

O CodeIgniter 4 tem suporte nativo ao uso de Entidades (entities) que ajudam na estruturação da parte de banco de dados de uma aplicação, fazendo a representação das colunas existentes nas tabelas. O CodeIgniter 3 não possuía esse recurso e quem tinha a necessidade de utilizá-lo, precisava utilizar bibliotecas de terceiros e fazer ajustes no carregamento de arquivos para dar suporte.

6 – Performance

O CodeIgniter 4, por utilizar PHP 7 na escrita e como configuração mínima no servidor, e outros aspectos, tem uma performance melhor que a do CodeIgniter 3.

7 – Bibliotecas Monolíticas

Diferente do CodeIgniter 3, nessa nova versão o uso de bibliotecas monolíticas ao estilo PEAR é quase zero.

8 – Configurações

Com o CodeIgniter 4 as configurações iniciais para que sua aplicação comece a rodar são mínimas, enquanto no CodeIgniter 3 era necessário realizar uma boa quantidade de configurações.

9 – Suporte nativo a arquivos .env

O CodeIgniter 4 possui suporte nativo a arquivos .env, permitindo uma otimização das configurações dos diferentes ambientes onde ela pode estar rodando (produção, testes, desenvolvimento). Esse recurso não existia nativamente no CodeIgniter 3.

10 – Migração entre versões

O CodeIgniter 4 não é compatível com versão anteriores, então o processo de atualização de aplicações da versão 3 para a 4 vai exigir um pouco mais de trabalho, mas não é nada complicado.

Enquanto a migração da versão 2.x para 3.x, e entre as diferentes versões 3.x era apenas sobrescrever os arquivos do diretório /system e atualizar o nome de alguns arquivos, da versão 3 para a quatro é necessário uma nova estrutura para a aplicação e uma reescrita de todas as classes utilizadas na mesma para se adequar ao novo padrão.

Essas são algumas das principais diferenças entre as versões 3 e 4 do CodeIgniter. Fique ligado por aqui que tem muito conteúdo sobre CodeIgniter 4 sendo produzido.