Ir para o conteúdo
DedicatedPHP Contato

Evolução do PHP como linguagem, da versão 1 à 8

Descubra como a linguagem de programação PHP evoluiu.

Evolução do PHP como linguagem, da versão 1 à 8

PHP, conhecido como Hypertext Preprocessor (Pré-processador de Hipertexto), é uma linguagem de script do lado do servidor. É usado principalmente para desenvolvimento web e foi lançado pela primeira vez em 1995 por Rasmus Lerdorf. Desde então, o PHP teve diversas versões, cada uma com melhorias e mudanças significativas. Vamos dar uma olhada na evolução do PHP desde sua concepção até o PHP 8, a última versão conhecida até setembro de 2021.

Versões do PHP e principais alterações

PHP/FI (Personal Home Page / Forms Interpreter) 1.0 (Lançado em 1995)

A primeira versão do PHP, então conhecida como PHP/FI, foi desenvolvida por Rasmus Lerdorf. Na época, o PHP era um conjunto simples de scripts CGI em Perl que ajudavam Lerdorf a manter seu currículo pessoal e coletar certos dados. Foi somente quando Lerdorf combinou esses scripts com C para formar o PHP/FI que o PHP se tornou um produto que podia ser usado por outras pessoas.

PHP/FI 2.0 (Lançado em 1997)

A versão 2 do PHP/FI introduziu uma série de recursos que lançaram as bases para o que o PHP se tornaria no futuro. Esses recursos incluíam suporte para formulários e cookies, bem como a capacidade de incorporar código PHP diretamente em HTML.

PHP 3 (Lançado em 1998)

Desenvolvido por Andi Gutmans e Zeev Suraski, o PHP 3 apresentou uma reformulação completa da linguagem, estabelecendo a maioria das convenções de sintaxe que conhecemos hoje. Incluía suporte a objetos pela primeira vez e foi a primeira versão que realmente se assemelhava a uma linguagem de programação completa.

PHP 4 (Lançado no ano 2000)

A versão 4 do PHP introduziu o Zend Engine, um software que interpreta o código PHP. Isso resultou em melhor desempenho, bem como em um suporte aprimorado para programação orientada a objetos. Também incluiu recursos como persistência de sessão e buffer de saída.

PHP5

O PHP 5 introduziu melhorias significativas na programação orientada a objetos, com a adição de classes abstratas, interfaces, clonagem de objetos e exceções. Além disso, o suporte a XML foi aprimorado e o suporte a SQLite foi introduzido.

PHP 5.0 (Lançado em julho de 2004)

  • Melhorias na programação orientada a objetos Introduziu um modelo de objeto completo, incluindo modificadores de acesso, interfaces, clonagem e exceções.
  • Melhoria no processamento de XML Adicionada a extensão SimpleXML para facilitar o manuseio de XML.
  • SQLite: O SQLite, um mecanismo de banco de dados SQL leve, foi incluído. Em PHP por padrão.

PHP 5.1 (Lançado em novembro de 2005)

  • Suporte a PDO (Objetos de Dados PHP): Fornece uma interface para acessar bancos de dados em PHP.
  • Melhorias de desempenho Inclui a adição de um coletor de lixo para encerrar ciclos de referência.

PHP 5.2 (Lançado em novembro de 2006)

  • Introdução à função filter_list() : Ajuda a validar e filtrar dados de forma segura.
  • Melhorias de desempenho e estabilidade Inclui a atualização da biblioteca PCRE, que apresenta compatibilidade e desempenho aprimorados.

PHP 5.3 (Lançado em junho de 2009)

  • Espaços de nomes Elas permitem organizar melhor o código em pacotes.
  • Ligações Estáticas Tardias Melhora a herança de código em PHP.
  • Closures (funções anônimas) Agora é possível criar funções sem um nome específico.
  • Melhorias no tratamento de exceções É introduzida a possibilidade de usar múltiplas exceções `catch`.
  • Suporte para sintaxe ternária aninhada sem a necessidade de parênteses.

PHP 5.4 (Lançado em março de 2012)

  • Características Permite a reutilização de código em linguagens de programação com um único ancestral, um tipo de herança múltipla.
  • Sintaxe abreviada de matriz Agora é possível declarar arrays com colchetes [] em vez de usar a função array().
  • Gestão de memória aprimorada : Reduz o uso geral de memória.

PHP 5.5 (Lançado em junho de 2013)

  • Geradores Permite a criação fácil de iteradores sem a necessidade de implementar a interface de iterador.
  • Finalmente, a palavra-chave : Ajuda a garantir que um segmento de código seja sempre executado, independentemente de uma exceção ser lançada.
  • Suporte para listas em loops foreach.

PHP 5.6 (Lançado em agosto de 2014)

  • Desconstrução de argumentos Permite usar ... para desempacotar argumentos de um array ou de um objeto Traversable.
  • Use função e use constante Importar funções e constantes para um espaço de nomes.
  • Melhorias nas Boas Práticas de Fabricação (BPF) Permite o uso de números GMP em funções que aceitam números inteiros ou strings.
  • Melhorias de segurança : Foi adicionado suporte para certificados de assinatura de chave pública.

PHP 7 (Lançado em 2015)

Com o PHP 7, houve um grande salto de desempenho graças à introdução do mecanismo de execução Just In Time (JIT). Recursos adicionais incluem tipos de retorno, declaração de tipo escalar, operador de mesclagem nula e a capacidade de definir arrays constantes usando define().

PHP 7.0 (Lançado em dezembro de 2015)

  • Melhoria de desempenho O novo mecanismo PHPNG (Zend Engine 3) melhora o desempenho, reduz o uso de memória e facilita o tratamento de erros.
  • Declarações de tipo de retorno Essa funcionalidade permite especificar o tipo de valor que uma função deve retornar.
  • Declarações de tipo escalar Permite forçar o tipo de parâmetros em funções (int, float, string, bool).
  • Operador de Fusão Nula (??) Este operador simplifica a verificação de valores nulos.
  • Operador de nave espacial (<=>) Introduzido para facilitar a comparação entre duas expressões.

PHP 7.1 (Lançado em dezembro de 2016)

  • Tipos anuláveis É permitido indicar que o valor de retorno de uma função pode ser de um tipo específico ou nulo.
  • Funções vazias O tipo void foi introduzido para funções que não retornam nada.
  • Visibilidade constante da classe Agora você pode definir constantes de classe como públicas, privadas ou protegidas.
  • Pseudo-tipo iterável Insira o tipo iterável para os parâmetros e os tipos de retorno das funções.

PHP 7.2 (Lançado em novembro de 2017)

  • Libsodium Esta biblioteca para criptografia moderna e segura agora está incluída por padrão.
  • Melhorias de tipo Adicionou-se o tipo "objeto" e permitiu-se o uso de tipos abstratos em tipos de parâmetros e declarações de tipo de retorno.

PHP 7.3 (Lançado em dezembro de 2018)

  • Vírgulas à direita em chamadas de função Vírgulas à direita são permitidas em chamadas de função.
  • Melhoria na velocidade do código JSON O desempenho das funções json_encode() e json_decode() foi aprimorado.
  • Melhorias no GC : Introduz melhorias no coletor de lixo, resultando em menor uso de memória.

PHP 7.4 (Lançado em novembro de 2019)

  • Funções de seta Essa funcionalidade permite a criação de funções anônimas de forma mais concisa.
  • Propriedades tipadas Propriedades de classe agora podem ter tipos declarados.
  • Desempacotando dentro de arrays Esta funcionalidade permite desempacotar arrays dentro de outros arrays.
  • Referências fracas Permite a retenção de referências a objetos sem impedir que sejam destruídos pelo coletor de lixo.

PHP 8 (Lançado em 2020)

A versão 8 do PHP trouxe consigo uma série de novos recursos interessantes, como a compilação Just-In-Time (JIT), que melhora ainda mais o desempenho. Tipos de dados de união, expressões de correspondência, operador nullsafe, argumentos nomeados e atributos também foram adicionados, entre muitos outros recursos.

Bem, e onde está a versão 6?

A versão PHP 6 de fato existiu como um projeto, mas nunca foi lançado oficialmente O principal objetivo do PHP 6 era fornecer suporte nativo ao Unicode, um padrão que permite o processamento de texto em qualquer idioma do mundo.

No entanto, os desenvolvedores se depararam com uma série de problemas durante o desenvolvimento Implementar suporte completo a Unicode no núcleo do PHP provou ser um desafio muito maior do que o esperado. Além disso, o desempenho da versão de pré-visualização do PHP 6 com Unicode foi significativamente mais lento.

Devido a essas dificuldades e ao atraso no desenvolvimento, o projeto PHP 6 acabou sendo abandonado. Os desenvolvedores decidiram pular o número 6 ao nomear a próxima versão principal do PHP para evitar confusão com o projeto PHP 6, que havia fracassado. Portanto, após o PHP 5.6, a próxima versão principal foi o PHP 7.0.

O PHP 7 incorporou muitos dos recursos planejados para o PHP 6, mas não incluiu suporte nativo a Unicode no núcleo da linguagem. Em vez disso, o PHP 7 focou em melhorar o desempenho e adicionar novos recursos à linguagem.

Vamos falar sobre desempenho: vale a pena fazer o upgrade?

A evolução da linguagem de programação não trouxe apenas novas funcionalidades, mas também deu especial ênfase à melhoria do desempenho a cada versão:

  • PHP/FI 2.0 - Baixo Não foi otimizado para desempenho, pois o foco principal estava nas funcionalidades de formulário e na interação com bancos de dados.
  • PHP 3 - Melhorado em relação ao PHP/FI 2.0. A reescrita do mecanismo PHP permitiu uma melhoria no desempenho e na eficiência.
  • PHP 4 - Melhorado em relação ao PHP 3. A introdução do mecanismo Zend proporcionou uma melhoria adicional no desempenho.
  • PHP 5.0 - Semelhante ao PHP 4. Embora incluísse melhorias significativas na programação orientada a objetos e no suporte a XML, o desempenho era similar ao do PHP 4.
  • PHP 5.1 - 5.6 - Melhorado a cada versão secundária, especialmente com otimizações de desempenho e melhorias na coleta de lixo.
  • PHP 7.0 - Significativamente melhorado em relação ao PHP 5.X, graças à introdução do Zend Engine 3. O desempenho do PHP 7.0 pode ser o dobro ou o triplo do PHP 5.6 para muitas aplicações.
  • PHP 7.1 - 7.4 Cada versão secundária introduziu melhorias de desempenho, embora não tão drásticas quanto a transição do PHP 5.6 para o PHP 7.0.
  • PHP 8.0 - Melhorado em relação ao PHP 7.4. A adição da compilação Just-In-Time (JIT) pode melhorar o desempenho em certos casos, embora a melhoria possa não ser significativa para aplicações web típicas.

E quanto à segurança? O que você pode me dizer?

PHP/FI 2.0 - PHP 3

  • Nessas primeiras versões, a segurança não era uma grande preocupação e muitos recursos de segurança não foram incluídos.

PHP4

  • O PHP 4 introduziu o modo de segurança (safe_mode), que tinha como objetivo prevenir alguns tipos de ataques, mas acabou sendo considerado ineficaz e foi descontinuado e removido no PHP 5.4.

PHP5

O PHP 5 introduziu uma série de melhorias de segurança:

  • Magic Quotes: Introduzido para prevenir ataques de injeção de SQL, mas foi criticado por seu comportamento inconsistente e acabou sendo desativado por padrão no PHP 5.3 e removido no PHP 5.4.
  • Melhorias no tratamento de erros: O PHP 5 introduziu exceções, que melhoram o tratamento de erros e podem ajudar a evitar a exposição de informações confidenciais.
  • PDO (PHP Data Objects): Introduzido no PHP 5.1, fornece uma interface para acessar bancos de dados que inclui consultas pré-configuradas, o que pode ajudar a prevenir injeção de SQL.

PHP 5.2

  • Filtro de entrada: O PHP 5.2 introduziu a extensão de filtro que permite a validação e filtragem de dados de entrada de forma segura e consistente.

PHP 5.3

  • PHAR (PHP Archive): O PHP 5.3 introduziu suporte para PHAR, uma forma de empacotar aplicações PHP inteiras em um único arquivo. Embora isso não seja uma melhoria de segurança em si, o PHAR inclui diversas medidas de segurança para prevenir ataques, como a capacidade de validar assinaturas digitais.

PHP 5.6

  • Melhoria na segurança SSL/TLS: O PHP 5.6 introduziu suporte para certificados de assinatura de chave pública e melhorias nas configurações padrão de SSL/TLS.

PHP 7

O PHP 7 desativou ou removeu diversas funções e recursos obsoletos e potencialmente inseguros:

  • Removemos diversas funções de hash inseguras, como crypt() e hash().
  • Desativamos a desserialização automática para evitar vulnerabilidade de injeção de objetos.
  • Introduzimos a declaração de tipo e a declaração de tipo de retorno para ajudar a prevenir erros de tipo que poderiam ser explorados.

PHP 7.2

  • Aprimoramento da segurança de senhas: o PHP 7.2 introduziu a função password_hash() com suporte para Argon2, um algoritmo de hash de senhas mais seguro.

PHP 8

O PHP 8 não introduziu muitos novos recursos de segurança, mas continuou a tendência do PHP 7 de remover ou desativar recursos obsoletos e potencialmente inseguros.

Conclusão

A atualização para a versão mais recente do PHP geralmente oferece vários benefícios Primeiro, as atualizações geralmente incluem melhorias de desempenho , o que pode fazer com que seus aplicativos da web funcionem mais rapidamente. Em segundo lugar, as versões mais recentes geralmente incluem novos recursos Isso pode tornar o código mais eficiente e mais fácil de escrever e manter. Terceiro, as versões mais recentes do PHP geralmente incluem melhorias de segurança que podem Proteja seu aplicativo contra ataques e vulnerabilidades.

No entanto, também é importante observar que a atualização para uma nova versão do PHP pode trazer desafios O código existente pode precisar ser revisado ou refatorado para suportar novos recursos ou para evitar recursos que foram desativados ou removidos. Em ambos os casos, a atualização do PHP é uma parte essencial da execução de um sistema. aplicação web segura e de alto desempenho .

Deseja aplicar essas ideias ao seu projeto?Vamos discutir sua plataforma PHP.
Veja os serviços relacionados