Conheça a História do PHP. PHP como é conhecido hoje, é na verdade o sucessor do produto chamado PHP/FI. Criado em 1994 por Rasmus Lerdof, a primeira encarnação do PHP foi um simples conjunto de binários Common Gateway Interface (CGI) escrito em linguagem de programação C.
Início da História do PHP: PHP Tools, FI, Kit de Construção, e PHP/FI
PHP como é conhecido hoje, é na verdade o sucessor do produto chamado PHP/FI. Criado em 1994 por Rasmus Lerdof, a primeira encarnação do PHP foi um simples conjunto de binários Common Gateway Interface (CGI) escrito em linguagem de programação C. Originalmente usado para acompanhamento de visitas para o seu próprio currículo online, ele nomeou o conjunto de scripts de “Personal Home Page Tools”, referenciado como “PHP Tools.” Ao longo do tempo, mais funcionalidades foram desejadas, e Rasmus Lerdof reescreveu o PHP Tools, produzindo uma maior e rica implementação. Este novo modelo foi capaz de interações com Banco de Dados, e além disso, fornecendo uma estrutura no qual os usuários poderiam desenvolver simples e dinâmicas aplicações web, como um mural de visitas. Em Junho de 1995, Rasmus liberou o código fonte do PHP Tools para o público, o que permitiu que desenvolvedores usassem da forma como desejassem. Isso permitiu – e encorajou – usuários a fornecerem correções para bugs no código, e em geral, aperfeiçoá-lo.
Em Setembro do mesmo ano, Rasmus expandiu o PHP e por um breve período mudou o nome PHP. Agora referindo-se a ferramenta como FI, abreviação para “Forms Interpreter”, a nova implementação incluiu algumas funcionalidades básicas do PHP como conhecemos hoje. Tinha variáveis no estilo Perl, interpretação automática de variáveis de formulários, e sintaxe HTML embutida. A sintaxe em si era muito similar com a do Perl, porém muito mais limitada, simples, e um pouco inconsistente. De fato, para embutir o código em um arquivo HTML, desenvolvedores tinham que usar comentários HTML. Embora este método não sido inteiramente bem recebido, FI continuou a desfrutar um crescimento e aceitação como uma ferramente CGI — mas ainda não como uma linguagem. Contudo, isso começou a mudar no mês seguinte. Em Outubro, 1995 Rasmus liberou um completa reescrita do código. Trazendo de volta o nome PHP, estava agora (brevemente) nomeado “Personal Home Page Contruction Kit” e foi o primeiro lançamento a vangloriar-se que era, na época, considerado um avançado script de interface. A linguagem foi desenvolvida para ser parecida com C, tornando-a fácil para ser adotada por desenvolvedores habituados com C, Perl e linguagens similares. Tendo sido até este momento exclusiva para sistemas UNIX e sistemas compatíveis com POSIX, o potencial para uma implementação em um Windows NT começava a ser explorada.
O código tem outra reforma completa, e em Abril de 1996, combinando os nomes dos últimos lançamentos, Rasmus introduziu o PHP/FI. Esta segunda geração da implementação começou a realmente evoluir o PHP de um conjunto de ferramentas para sua própria linguagem de programação. Ele incluía suporte embutido dos banco de dados DBM, mSQL, e Postgres95, cookies, funções de apoio definidas pelo usuário, e muito mais. Em Junho, PHP/FI ganhou o status de versão 2.0. Um interessante fato sobre isso, porém, é que existia apenas um única completa versão do PHP 2.0. Quando finalmente se tornou um status beta em Novembro, 1997, o mecanismo de análise suvbjacente já estava interiramente reescrito.
Apesar de ter tido um curto período de desenvolvimento, ele continuava defrutar uma crescente popularidade em um ainda jovem mundo web desenvolvimento, Em 1997 e 1998, PHP/FI teve o apoio de milhares de usuários ao redor do mundo. Uma pesquisa da Netcraft de Maio de 1998, indicou que cerca de 60.000 domínios relataram ter cabeçalhos contendo “PHP”, indicando que o servidor de hospedagem de fato tinha o PHP instalado. Este número pode ser equiparado com aproximadamente 1% de todos os domínios da Internet da época. Apesar destes números impressionantes, o amadurecimento do PHP/FI foi condenado a limitações; enquanto haviam vários colaboradores menores, ainda era desenvolvido principalmente por uma única pessoa.
Exemplo de código PHP/FI:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<!--include /text/header.html--> <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> Hey, you are using Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> Sorry, that record does not exist<p> <!--endif exit--> Welcome <!--$user-->!<p> You have <!--$index:0--> credits left in your account.<p> <!--include /text/footer.html--> |
PHP 3
PHP 3.0 foi a primeira versão que se assemelha com o PHP como existe hoje. PHP/FI se encontrava ainda ineficiente e não tinha recursos que precisava para prover uma aplicação eCommerce que estavam desenvolvendo para um projeto da Universidade, Andi Gutmans e Zeev Suraski de Tel Aviv, Israel, começaram outra completa reescrita do interpretador em 1997. Abordando Rasmus online, eles discutiram vários aspectos para a corrente implementação e redesenvolvimento do PHP. Em um esforço para melhorar a engine e iniciar a construção em cima da base de usuários existentes do PHP/FI, Andi, Rasmus, e Zeev decidiram colaborar no desenvolvimento de uma nova e independente linguagem de programação. Essa nova linguagem foi lançada com um novo nome, que removeu a impressão do limitado uso pessoal que o nome PHP/FI 2.0 tinha mantido. Foi renomeado simplesmente para ‘PHP’, com o significado se tornando um acrônimo recursivo – PHP: Hypertext Preprocessor.
Um dos maiores pontos fortes do PHP 3.0 foram os fortes recursos de extensibilidade. Além de fornecer a usuários finais uma interface robusta para múltiplos banco de dados, protocolos, e APIs, a facilidade de estender a sua própria linguagem atraiu dezenas de desenvolvedores que submeteram uma variedade de módulos. Indiscutivelmente esta foi a chave para o PHP 3.0 ter sido um tremendo sucesso. Outro recurso chave foi introduzido no PHP 3.0 incluindo o suporte a programação orientada a objeto e a uma mais poderosa e consistente sintaxe de linguagem.
Em junho de 1998, com muitos novos desenvolvedores ao redor do mundo unindo esforços, PHP 3.0 foi anunciado pelo novo time de desenvolvimento do PHP como o sucessor oficial para o PHP/FI 2.0. As melhorias no PHP/FI 2.0, cessaram em Novembro do ano anterior e agora foi oficialmente finalizado. Depois de nove meses de testes abertos ao público, quando o anúncio do lançamento oficial do PHP 3.0 chegou, prontamente foi instalado em 70.000 domínios em todo mundo, e já não era mais limitado ao sistemas operacionais compatíveis ao POSIX. Uma parcela relativamente pequena de domínios informaram que o PHP foi instalado em um host com servidores executando Windows 95, 98 e NT, Macintosh. E em seu pico, PHP 3.0 foi instalado em aproximadamente 10% dos servidores web da internet.
PHP 4
No inverno de 1998, logo após o PHP 3.0 ter sido oficialmente lançado, Andi Gutmans e Zeev Suraski começaram a trabalhar para reescrever o core do PHP. Os objetivos do projeto eram melhorar performance das aplicações complexas, e melhorar a modularização do código base do PHP. Tais aplicações só foram possíveis pelos novos recursos e suporte para uma ampla variedades de banco de dados de terceiros e APIs do PHP 3.0, mas o PHP 3.0 não foi projetado para trabalhar com aplicações complexas de forma eficiente.
O novo motor, chamado ‘Zend Engine’ (composto pelos primeiros nome, Zeev e Andi), alcançou os objetivos do projeto com sucesso, e foi introduzido em meados de 1999. O PHP 4.0 baseado neste motor, e uma variedade de novos recursos adicionais, foi oficialmente lançado em Maio de 2000, quase dois anos após seu antecessor. Além da altíssima melhoria da performance nesta versão, o PHP 4.0 incluiu outros recursos chaves, tais como suporte para maioria dos servidores web, sessões HTTP, saídas de buffering, mais maneiras seguras para manipular dados de entrada de usuários e diversas novas construções de linguagem.
PHP 5
O PHP 5 foi lançado em Julho de 2004 após um longo desenvolvimento e vários pré-lançamentos. Principalmente impulsionado pelo seu core o Zend Engine 2.0 com um novo modelo de objeto e dezenas de outros novos recursos.
O time de desenvolvimento PHP inclui dezenas de desenvolvedores, também dezenas de outros trabalhando em algo relacionado ao PHP e apoio a projetos como PEAR, PECL, documentação, infraestrutura de rede subjacente de bem mais de uma centena de servidores web em seis dos sete continentes do mundo. Embora seja apenas uma estimativa baseada sobre estatísticas de anos anteriores, é seguro presumir que o PHP está agora instalado em dezenas, ou mesmo talvez centenas, de milhões de domínios em todo mundo.
PHP 7
PHP 7 foi o primeiro grande lançamento PHP desde a versão 5.0.0, que foi lançada em 2004.
Não é como se os core developers do PHP estivessem sem trabalhar todo esse tempo. PHP 6 tinha um ambicioso plano para trazer suporte transparente para strings Unicode ao PHP. No entanto, o seu desenvolvimento estagnou e PHP 6 foi cancelado em 2010.
Após esse período, PHP teve vários lançamentos com alguns novos recursos importantes, como namespaces no PHP 5.4, mas nada realmente grande que justificasse o lançamento de uma versão maior.
Ainda em 2010, o Facebook anunciou o compilador PHP HipHop. Ele foi um compilador que iria converter PHP em código C++, que então seria compilado em código de máquina nativo com um compilador C++. Apesar de o conceito ser ótimo e de ele ter trazido algumas melhorias de desempenho para PHP, não era muito prático, porque levaria muito tempo para compilar scripts PHP para código de máquina nativo.
Depois disso, o Facebook mudou para uma abordagem diferente. Eles criaram a HHVM (HipHop Virtual Machine), que compila o PHP em código de máquina nativo usando um engine JIT (Just In Time). Isso levaria muito menos tempo e ainda alcançou melhorias significativas de desempenho.
Mas, aparentemente, o Facebook não estava feliz com as features do PHP e, em 2014, lançou Hack, uma linguagem derivada do PHP que trouxe muitas características que faltavam no PHP, como mais rigor na checagem de tipos em todos os tipos de dados e suporte nativo de programação assíncrona.
Não muito tempo depois, Dmitry Stogov, da Zend, anunciou um projeto paralelo que estava um pouco em segredo para o desenvolvimento de PHP, que foi chamado de PHPNG.
Histórico de versões
Versão principal | Versão intermediária | Data de lançamento | Notas |
---|---|---|---|
1 | 1.0.0 | 1995-06-08 | Oficialmente chamado de “Personal Home Page Tools (PHP Tools)” (Ferramentas para página pessoal). Este foi o primeiro uso para o nome “PHP”. |
2 | 2.0.0 | 1997-11-01 | Considerado pelo seu criador como a “mais rápida e simples ferramenta” para criar páginas dinâmicas para a Web. |
3 | 3.0.0 | 1998-06-06 | O desenvolvimento passou a ser feito por vários desenvolvedores em colaboração. Zeev Suraski e Andi Gutmans reescreveram toda a base do PHP nesta versão. |
3.0.18 | 2000-10-20 | Última versão para do PHP 3.0.x. Unsupported Historical Releases | |
4 | 4.0.0 | 2000-05-22 | Foi adicionado um melhor sistema de análise sintática (parser) chamado de motor Zend (Zend engine). |
4.1.0 | 2001-12-10 | Introduzidas as ‘superglobais’ ($_GET , $_POST , $_SESSION , etc.) |
|
4.2.0 | 2002-04-22 | A register_globals passou agora a estar desativada por padrão. Dados recebidos via rede são mais inseridos no escopo de variável global, fechando possíveis brechas de segurança. |
|
4.3.0 | 2002-12-27 | Introduziu sua interface de linha de comando (command-line interface – CLI), para complementar o CGI. | |
4.4.0 | 2005-07-11 | Adicionadas as páginas do manual para os script phpize e php-config . |
|
4.4.9 | 2008-08-07 | Melhorias na segurança e correção de bugs. Última versão do PHP 4.4.x. | |
5 | 5.0.0 | 2004-07-13 | Zend Engine II com um novo modelo de objeto. |
5.1.0 | 2005-11-24 | Melhorias na performance com a introdução de variáveis de compilação na reengenharia do motor PHP. Adicionada biblioteca PHP Data Objects (PDO) como uma nova interface de acesso aos bancos de dados. | |
5.2.0 | 2006-11-02 | Habilitado por padrão o filtro de extensões. Suporte JSON nativo. | |
5.2.16 | 2010-12-16 | Última versão para a série 5.2. | |
5.2.17 | 2011-01-06 | Correção de vulnerabilidade crítica relacionada a ponto flutuante. | |
5.3.0 | 2009-06-30 | Suporte a nomes de espaço (namespace), Vinculação de nomes (late static bindings), rótulos de salto de código (goto limitado), clausura nativa, arquivos PHP nativos (phar), coletor de lixo para referências circulares, suporte Windows melhorado, sqlite3 , mysqlnd em substituição a libmysql como biblioteca de extensão de trabalho com MySQL, fileinfo em substituição ao mime_magic para um melhor suporte MIME, extensão de internacionalização, e descontinuidade da extensão ereg . |
|
5.3.1 | 2009-11-19 | Mais de 100 correções de problemas, dentre eles algumas falhas de segurança. | |
5.3.2 | 2010-03-04 | Grande número de correção de bugs. | |
5.3.3 | 2010-07-22 | Principalmente correções de bugs e segurança; FPM SAPI. | |
5.3.4 | 2010-12-10 | Principalmente correções de bugs e segurança; FPM SAPI melhorado. | |
5.3.5 | 2011-01-06 | Conserto de erro crítico relacionado a ponto flutuante. | |
5.3.6 | 2011-03-10 | Mais de 60 correções de bug reportados em versões anteriores. | |
5.3.7 | 2011-08-18 | Esta versão focou-se na melhoria da estabilidade da série PHP 5.3.x com mais de 90 correções de bug, algumas relacionadas também à segurança. | |
5.3.8 | 2011-08-23 | Esta versão corrigiu dois problemas introduzidos na versão PHP 5.3.7. | |
5.3.9 | 2012-01-10 | Esta versão focou-se na melhoria da estabilidade da série PHP 5.3.x. | |
5.3.10 | 2012-02-02 | Corrigida execução remota arbitrária reportada por Stefan Esser, CVE-2012-0830. | |
5.3.13 | 2012-05-08 | Corrigida vulnerabilidade nas instalações utilizando CGI. | |
5.3.14 | 2012-06-06 | bugs corrigidos. | |
5.3.15 | 2012-07-19 | bugs corrigidos. | |
5.3.16 | 2012-08-16 | bugs corrigidos. | |
5.3.17 | 2012-09-13 | bugs corrigidos. | |
5.3.21 | 2013-01-17 | bugs corrigidos. | |
5.4.0 | 2012-03-01 | Suporte à Trait, suporte a uma versão mais curta na sintaxe de vetores. Items removidos: register_globals , safe_mode , allow_call_time_pass_reference , session_register() , session_unregister() and session_is_registered() . Servidor web embutido. Várias melhorias nas fucionalidades já existentes e na performance. Redução dos requerimentos de memória. |
|
5.4.1 | 2012-04-26 | correções de bugs. | |
5.4.2 | 2012-05-03 | Pacote de segurança para corrigir vulnerabilidade em chamadas PHP-CGI. | |
5.4.3 | 2012-05-08 | Correção de vulnerabilidade relacionada às instalações baseadas em CGI e correção em vulnerabilidade de buffer overflow na função apache_request_headers() . |
|
5.4.4 | 2012-06-06 | correções de bugs. | |
5.4.5 | 2012-07-19 | correções de bugs. | |
5.4.6 | 2012-08-16 | correções de bugs. | |
5.4.7 | 2012-09-13 | correções de bugs. | |
5.4.11 | 2013-01-17 | correções de bugs. | |
5.5.0 | 2013-06-20 | correções de bugs. | |
5.6.9 | 2015-05-14 | correções de bugs. | |
7 | 7.0.0 | 2015-12-03 | Após muitos anos de desenvolvimento, finalmente a linguagem foi lançada, porém com uma performance surpreendente. A nova versão não trouxe apenas melhorias em performance, mas também novas funcionalidades, além de implementar e fortificar novos recursos na orientação a objetos. |
7.1.0 | 2016-12-01 | correções de bugs. | |
7.1.11 | 2017-10-26 | correções de bugs. |
Conclusão
A história do PHP é bem extensa, e como vimos a evolução da linguagem vem desde 1995. Com certeza a versão 7 do PHP de hoje, está muito melhor do que as versões anteriores… e continuará em plena evolução sempre.
Caso queira conhecer o PHP, no Canal TI temos um Curso de PHP Básico, 100% gratuito via Youtube.