PHP – O que é, o que dá pra fazer e como se tornou uma das linguagens mais poderosas para o desenvolvimento web

O PHP de Ontem
O PHP de ontem

Quando se fala em PHP, as perguntas mais frequentes são “o que é?” e “o que faço com isso?”. Procurarei respondê-las nesse artigo, além de explicar como essa linguagem nasceu e se tornou umas das mais populares no desenvolvimento web.

O que é PHP?

O PHP, cuja sigla atual significa Hypertext Preprocessor (Pré-processador de Hipertextos), é uma linguagem de script de código aberto muito utilizada, apropriada para o desenvolvimento web e que pode ser embutida dentro do HTML. É uma linguagem server-side, ou seja, o código é executado no servidor, o qual gera o HTML que é enviado para o navegador. Assim, o navegador recebe os resultados da execução do script, mas não sabe qual era o código fonte original. A maior vantagem do PHP reside no fato de ele ser extremamente simples para um iniciante e, ao mesmo tempo, oferecer recursos avançadíssimos para um programador experiente.

O que eu faço com isso?

Basicamente, qualquer coisa. O limite é sua criatividade e seu conhecimento técnico. Apesar de ser focado nos scripts de servidor – e por isso poder fazer qualquer coisa que outro programa CGI pode fazer, como envio e recebimento de cookies, coleta de dados de formulários, geração de páginas com conteúdo dinâmico –, o PHP pode fazer muito mais do que isso. Ele pode ser utilizado na maioria dos sistemas operacionais e tem suporte à maioria dos servidores web, dando ao programador a escolha de servidor web e sistema operacional, além da escolha de programação estruturada ou programação orientada a objetos, ou mesmo uma mescla das duas. Possui suporte a uma ampla variedade de banco de dados e para comunicação com outros serviços através da utilização de protocolos. O PHP não te limita à geração de arquivos HTML e pode gerar imagens e arquivos PDF dinamicamente.

O PHP de ontem – História do PHP

O que hoje conhecemos como a poderosa linguagem de programação PHP é a evolução de um produto criado pelo programador Rasmus Lerdorf, denominado PHP/FI. A primeira versão da linguagem, desenvolvida por ele em 1994, nada mais era do que um conjunto de binários Common Gateway Interface (CGI) escrito em C. Para ser mais detalhista, tratava-se de um contador de acessos nas páginas de seu site e o nome era uma abreviatura de Personal Home Page Tools. Estava criado o embrião da linguagem PHP.

O tempo foi passando e novas funcionalidades se tornaram necessárias, o que levou Rasmus a reescrever o código, introduzindo novas características, como interação com banco de dados, criando uma estrutura que permitia aos usuários criar aplicações web como um livro de visitas. Em junho de 1995, ele liberou o código do projeto para o público, encorajando os desenvolvedores a utilizarem-o e introduzirem melhorias nele. Três meses depois, o projeto foi expandido e, pela primeira e única vez, trocou de nome, deixando de ser chamado PHP e sendo denominado Forms Interpreter (FI). Embora o nome fosse outro, as funcionalidades básicas que existem até hoje foram introduzidas nessa versão, como a interpretação automática de valores de formulários. O maior problema dessa versão era o fato de que o código era embutido em comentários HTML. Em outubro de 1995, Rasmus libera um código totalmente reescrito, readotando o nome PHP e o denominando como Personal Home Page Construction Kit, sendo anunciado como um avançado script de interface. Tratava-se da versão 1.0.0 da linguagem, mas muitos não a consideram uma linguagem de programação e sim um conjunto de ferramentas.

Em abril de 1996, Rasmus introduz novas funcionalidades no código, e combina o nome de seus dois últimos lançamentos para denominar essa nova versão, PHP/FI. Entre as novas funcionalidades estava suporte embutido a banco de dados, cookies e funções desenvolvidas pelo próprio usuário. Em junho desse mesmo ano, ela ganha o status de versão 2.0. Um fato interessante, é que apesar do nome da versão muitos a consideram como a primeira que pode ser chamada realmente de linguagem de programação. Ressalte-se aqui que o PHP cresceu junto com o mundo de desenvolvimento web, tendo apoio de milhares de usuários ao redor do mundo. Apesar de ainda ser um bebê no mundo de desenvolvimento, já era usada em 1% dos domínios de internet em maio de 1998, cerca de 60.000, segundo dados de uma pesquisa Netcraft.

O PHP 3.0 foi a primeira versão que mais se parece com o PHP atual. Dois programadores israelenses, Andi Gutmans e Zeev Suraski, estavam utilizando a linguagem para desenvolver um projeto da universidade e perceberam que ela não tinha os recursos suficientes para atendê-los. Conhecedores desse problemas, conversaram com Rasmus e juntos decidiram desenvolver uma linguagem de programação nova e independente, a qual foi lançada com um novo nome e eliminava a impressão de limitação para uso pessoal que o PHP/FI 2.0 sugeria. Como o nome PHP, que já tinha uma fama e popularidade já conquistada, decidiram mantê-lo, mas o significado da sigla passou a ser Hypertext Preprocessor. Os maiores pontos fortes dessa versão foram os recursos de extensibilidade. A linguagem já tinha uma interface para múltiplos banco de dados, apis e protocolos e muitos usuários submeteram uma grande gama de módulos. Essa modularização foi a chave para o grande sucesso da versão, na qual também foram introduzidos uma poderosa e consistente sintaxe de linguagem e o suporte a programação orientada a objeto. Isso fez com que quando de seu lançamento, a linguagem fosse rapidamente instalada em 70.000 domínios ao redor do mundo. Um fato interessante é que servidores executando Windows 95, 98 e NT, além de Macintosh, embora em número reduzido, também relataram a instalação da linguagem e, em seu pico, o PHP 3.0 foi instalado em 10% dos servidores web no mundo.

Concluído o lançamento do PHP 3.0, Zeev e Andi começaram a trabalhar em uma reescrita do core da linguagem, com o intuito de melhorar a modularização do código e a performance das aplicações complexas. Desse trabalho, resultou a criação do novo motor, denominado Zend Engine, o qual foi utilizado pela primeira vez no PHP 4.0, lançado em maio de 2000. Houve uma melhoria gigantesca na performance e recursos chaves como suporte para a maioria dos servidores web, saídas de buffering, sessões HTTP e maneiras mais seguras para manipular entradas de formulário foram introduzidos nesta versão.

Depois de um longo período de desenvolvimento e vários pré-lançamentos, o PHP 5 foi lançado em julho de 2004. Utilizava agora em seu core o Zend Engine 2.0, o qual contava com um novo modelo de objeto e muitos outros recursos novos, e o time de desenvolvimento contava com dezenas de desenvolvedores, além de dezenas de outros trabalhando em algo relacionado a PHP. A principal mudança dessa versão foi a adição de destrutores e a reformulação de construtores.

Mais de um ano depois, em novembro de 2005, foi lançado o PHP 5.1, o qual tinha como características uma reescrita completa do código de manipulação de dados, ganhos de performance em comparação à versão anterior, cerca de 30 novas funções em várias extensões e funcionalidades e correção de mais de 400 bugs. Entretanto, o que realmente marcou essa versão foi o fato da extensão PDO agora vir ativa por padrão. O PHP tornava-se agora um ambiente propício para a programação orientada a objeto – um sonho antigo dos programadores.

Em fevereiro de 2006 era lançada a versão 5.2, a qual teve como características principais a adição e habilitação por padrão da extensão JSON e a adição da extensão ZIP, permitindo a criação e edição de arquivos zip.

Mais um tempo se passou e, em junho de 2009, foi lançada a versão 5.3.0. Provavelmente a maior característica dessa versão tenha sido a adição do suporte a namespaces, mas também são características dela a adição do suporte nativo para closures e a adição de dois novos métodos mágicos, bem como a adição de acesso dinâmico a métodos estáticos.

Originalmente este artigo foi pensado para englobar o ontem, o hoje e o amanhã do PHP, mas enquanto escrevia o artigo percebi que ele ficaria muito extenso e optei por segmentá-lo em três partes. Assim, no próximo artigo, abordarei o PHP de hoje, notadamente as versões 5.4 a 7.1, com um maior destaque para a versão 7.0, onde ocorreram as maiores mudanças. Já no terceiro artigo, abordarei sobre as várias especulações e alguns fatos que se têm sobre futuras versões da linguagem e para onde caminha a evolução da mesma. Apresentada a linguagem, deixo o formato de artigo de lado e passarei ao formato de tutorial; em cada tutorial, abordarei um módulo de construção do sistema, dando exemplos completos de como desenvolver um sistema em PHP. Minha ideia inicial é estruturar um sistema para imobiliárias do absoluto zero, uma das várias funcionalidades que estarão presentes no projeto que desenvolvo atualmente.