Vous êtes sur la page 1sur 6

Josh Lockhart

Novatec
Authorized Portuguese translation of the English edition of titled Modern PHP, ISBN 9781491905012 © 2015 Josh
Lockhart. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to
publish and sell the same.

Tradução em português autorizada da edição em inglês da obra Modern PHP, ISBN 9781491905012 © 2015 Josh
Lockhart. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os
direitos para publicação e venda desta obra.

© Novatec Editora Ltda. 2015.

Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo
parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.

Editor: Rubens Prates


Tradução: Lúcia A. Kinoshita
Revisão gramatical: Mari Kumagai
Editoração eletrônica: Carolina Kuwabata
Assistente editorial: Priscila A. Yoshimatsu

ISBN: 978-85-7522-428-1

Histórico de impressões:
Abril/2015 Primeira edição

Novatec Editora Ltda.


Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
capítulo 1

O novo PHP

A linguagem PHP está passando por um renascimento. O PHP está se trans-


formando em uma linguagem de scripting moderna, com recursos úteis como
namespaces, traits, closures e um cache de opcode integrado. O ecossistema do
PHP moderno também está evoluindo. Os desenvolvedores PHP dependem menos
de frameworks monolíticos, e mais de componentes menores e especializados.
O gerenciador de dependências Composer está revolucionando a forma de criar
aplicações PHP; ele nos liberta do jardim cercado de muros de um framework e
permite misturar e combinar componentes PHP que proporcionem interoperação
e sejam mais adequados às nossas aplicações PHP personalizadas. A interopera-
bilidade entre os componentes não seria possível sem padrões da comunidade,
propostos e mantidos pelo PHP Framework Interop Group.
O livro PHP Moderno é seu guia para o novo PHP, e mostrará como criar e im-
plantar aplicações PHP incríveis usando padrões da comunidade, boas práticas
e componentes que possibilitem interoperação.

Passado
Antes de explorarmos o PHP moderno, é importante entender a origem do PHP.
O PHP é uma linguagem de scripting interpretada, usada no lado do servidor. Isso
significa que você escreve código PHP, carrega-o em um servidor web e executa-o
com um interpretador. O PHP normalmente é usado com um servidor web como o
Apache ou o nginx para servir conteúdo dinâmico. Entretanto o PHP também pode
ser usado para criar aplicações eficazes de linha de comando (assim como o bash,
o Ruby, o Python e assim por diante). Muitos desenvolvedores PHP não percebem
isso e deixam de lado um recurso realmente empolgante. Mas não é o seu caso.
A história oficial do PHP pode ser lida em http://php.net/manual/history.php.php. Não
repetirei o que já foi muito bem dito por Rasmus Lerdorf (o criador do PHP). O
que direi é que o PHP tem um passado tumultuado. Essa linguagem começou

22
Capítulo 1 ■ O novo PHP 23

como uma coleção de scripts CGI criada por Rasmus Lerdorf para monitorar as
visitas ao seu currículo online. Lerdorf chamou seu conjunto de scripts CGI de
“Personal Home Page Tools”. Essa versão preliminar era totalmente diferente do
PHP que conhecemos hoje. O PHP Tools inicial de Lerdorf não era uma linguagem
de scripting; eram ferramentas que ofereciam variáveis rudimentares e interpreta-
ção automática de variáveis de formulário usando uma sintaxe HTML embutida.
Entre 1994 e 1998, o PHP passou por inúmeras revisões e houve até mesmo algu-
mas reescritas completas. Andi Gutmans e Zeev Suraski – dois desenvolvedores
de Tel Aviv – juntaram suas forças com Rasmus Lerdorf para transformar o PHP,
partindo de uma pequena coleção de ferramentas CGI para uma linguagem de
programação completa, com uma sintaxe mais consistente e um suporte básico
para programação orientada a objetos. Eles chamaram seu produto final de PHP
3 e o disponibilizaram no final de 1998. O novo nome PHP originou-se de nomes
anteriores, e é um acrônimo recursivo para PHP: Hypertext Preprocessor. O PHP
3 foi a primeira versão que mais lembrava o PHP que conhecemos atualmente.
Essa versão oferecia mais capacidade de extensão para diversos bancos de dados,
protocolos e APIs. A capacidade de extensão do PHP 3 atraiu muitos novos desen-
volvedores ao projeto. No final de 1998, o PHP 3 já estava instalado em incríveis
10% dos servidores web no mundo.

Presente
Hoje em dia, a linguagem PHP está evoluindo rapidamente, e seu suporte é feito
por dezenas de desenvolvedores que fazem parte da equipe que trabalha com o
seu núcleo em todo o mundo. As práticas de desenvolvimento também mudaram.
No passado, uma prática comum consistia em criar um arquivo PHP, carregá-lo
em um servidor de produção por meio de FTP e esperar que ele funcionasse. É
uma péssima estratégia de desenvolvimento, porém era necessária devido à falta
de ambientes viáveis para desenvolvimento local.
Atualmente, evitamos usar o FTP e utilizamos um sistema de controle de versões
em seu lugar. Softwares de controle de versões como o Git ajudam a manter um
histórico de código que possa ser auditado, além de ser possível criar branches,
fazer forks e merges. Os ambientes de desenvolvimento locais são idênticos aos
servidores de produção, graças às ferramentas de virtualização como o Vagrant
e ferramentas de configuração como o Ansible, Chef e Puppet. Podemos tirar
proveito de componentes PHP especializados com o gerenciador de dependências
Composer. Nosso código PHP é aderente aos PSRs – padrões da comunidade
24 PHP Moderno

administrados pelo PHP Framework Interop Group. Testamos completamente


nosso código com ferramentas como o PHPUnit. Implantamos nossas aplicações
com o gerenciador de processos FastCGI do PHP por trás de um servidor web
como o nginx. Além disso, melhoramos o desempenho das aplicações com um
cache de opcode.
O PHP moderno inclui várias práticas novas que podem não ser familiares a
quem o PHP é uma novidade ou para aqueles que estão partindo de versões mais
antigas de PHP. Não se preocupe. Descreverei cada um dos conceitos posterior-
mente neste livro.
Também estou empolgado com o fato de o PHP agora ter uma especificação
preliminar oficial – algo que não existia até 2014.

A maioria das linguagens de programação maduras tem


uma especificação. Em termos leigos, uma especificação é um
documento canônico que define o que significa ser PHP. Esse
documento é usado por desenvolvedores que criam programas
que fazem parse, interpretam e executam código PHP. Não é um
documento para desenvolvedores que criam aplicações e sites
usando PHP.

Sara Golemon e o Facebook anunciaram a primeira versão preliminar da especi-


ficação PHP na conferência OSCON da O’Reilly em 2014. O anúncio oficial pode
ser lido na lista de correspondência interna do PHP (http://bit.ly/php-internals), e a
especificação do PHP (http://bit.ly/php-langspec) pode ser lida no GitHub.
Uma especificação oficial da linguagem PHP está se tornando mais importante,
considerando a introdução de várias engines PHP concorrentes. A engine PHP
original é a Zend Engine (http://www.zend.com/en/company/community/php/), que
é um interpretador PHP escrito em C e introduzido no PHP 4. A Zend Engine
foi criada por Rasmus Lerdorf, Andi Gutmans e Zeev Suraski. Atualmente, a
Zend Engine é a principal contribuição da empresa Zend à comunidade PHP.
No entanto, há agora uma segunda engine PHP importante – a HipHop Virtual
Machine do Facebook. Uma especificação da linguagem garante que ambas as
engines manterão uma compatibilidade básica.

Uma engine PHP é um programa que faz parse, interpreta e executa


código PHP (por exemplo, a Zend Engine ou a HipHop Virtual
Machine do Facebook).Não a confunda com PHP, que é uma
referência genérica à linguagem PHP.
Capítulo 1 ■ O novo PHP 25

Futuro
A Zend Engine está melhorando a passos rápidos, com novos recursos e desem-
penho aprimorado. Atribuo as melhorias da Zend Engine ao seus novos concor-
rentes, especificamente à HipHop Virtual Machine e à linguagem de programação
Hack do Facebook.
O Hack é uma nova linguagem de programação criada com base no PHP. Ela
introduz tipagem estática, novas estruturas de dados e interfaces adicionais, ao
mesmo tempo em que mantém a compatibilidade com versões anteriores de có-
digo PHP existente, com tipagem dinâmica. O Hack visa aos desenvolvedores que
apreciam as características de desenvolvimento rápido do PHP, mas que precisam
da previsibilidade e da estabilidade da tipagem estática.

Discutiremos a tipagem dinâmica em comparação com a tipagem


estática mais adiante neste livro. A diferença entre as duas está
em quando os tipos PHP são verificados. Os tipos dinâmicos são
verificados em tempo de execução, enquanto os tipos estáticos
são verificados em tempo de compilação. Consulte o capítulo 12
para obter mais informações.

A HHVM (HipHop Virtual Machine) é um interpretador de PHP e Hack que usa


um compilador JIT (Just in Time) para melhorar o desempenho das aplicações e
reduzir o uso de memória.
Não vejo o Hack e a HHVM substituindo a Zend Engine, porém as novas con-
tribuições do Facebook estão agitando bastante a comunidade PHP. O aumen-
to da concorrência fez a equipe do núcleo da Zend Engine anunciar o PHP 7
(http://bit.ly/php7-timeline) – uma Zend Engine otimizada que, segundo dizem,
estará à altura da HHVM. Discutiremos mais sobre esses desenvolvimentos no
capítulo 12.
É um período empolgante para ser um programador PHP. A comunidade PHP
jamais esteve tão cheia de energia, foi tão divertida e inovadora. Espero que este
livro ajude você a adotar firmemente as práticas do PHP moderno. Há inúmeras
novidades para aprender e muito mais no horizonte. Considere isso como o seu
roadmap. Agora vamos começar.

Vous aimerez peut-être aussi