Como funciona o PHP, Para que serve?

TL;DR

A linguagem PHP traduz arquivos em caracteres, cria uma árvore sintática abstrata (AST) e a converte em codificadores. Estes códigos podem ser armazenados em cache para melhorar o desempenho.

Em servidores web, o PHP é frequentemente usado junto com PHP-FPM, o que oferece uma escalabilidade impressionante. Além disso, o PHP 7.4 introduziu a função de pré-carga de código de função, que permite que os arquivos PHP sejam compilados em códigos de função imediatamente após o serviço FPM ter sido iniciado.

Para uma descrição detalhada do comportamento da Zend VM, você pode ler este artigo sobre o compilador JIT PHP 8. Este post explica em detalhes como o PHP profissional funciona internamente com e sem o compilador Just In Time.

Portanto. O que é PHP?

Estou feliz em ver que os novos desenvolvedores de PHP precisam de cada vez menos conhecimento para desenvolver bons produtos. Ótimo!

Quando perguntamos, foi-nos dito que o PHP foi a público há cerca de 26 anos.

Desde os primeiros dias do PHP, é importante entender como e por que ele se tornou tão bem sucedido. Também dá uma visão geral da maioria de suas características e capacidades arquitetônicas.

O PHP evoluiu para um motor baseado em modelos. Foi um conjunto de programas CGI que permitiu o desenvolvimento de páginas web como valores dinâmicos.

Sim, a iniciativa foi misturar HTML com PHP – em 1995, foi revolucionária!

PHP é uma linguagem de script que executa seu código sequencialmente do início ao fim de um documento, com cada execução 100% nova. Nenhuma memória ou contexto é compartilhado.

Quando começamos a falar sobre desenvolvimento web, as coisas podem mudar um pouco. Porque o PHP pode ser executado como um CGI ou como um módulo em um servidor http. Vamos ver.

Como o PHP funciona com servidores HTTP?

Em geral, os servidores HTTP têm uma missão bastante clara: fornecer conteúdo hipermídia através do protocolo HTTP. Isto significa que os servidores http recebem uma solicitação, recuperam uma string do tipo conteúdo de qualquer website e respondem com essa string de acordo com o protocolo HTTP.

O PHP foi desenvolvido para melhorar este conteúdo hipermídia e permitir que os desenvolvedores forneçam mais do que arquivos HTML estáticos.

PHP do zero ao profissional é uma linguagem de scripting que isola cada execução em um ambiente de scripting. Portanto, a memória e outros recursos não são compartilhados entre as execuções.

Há duas maneiras diferentes de implementar o código PHP em um ambiente web, cada uma com suas próprias vantagens e desvantagens.

O PHP pode ser conectado a servidores http através de uma conexão CGI ou como um módulo. A principal diferença entre os dois métodos é que os módulos http compartilham recursos com o servidor HTTP, enquanto no modelo CGI, o PHP executa uma execução completamente nova para cada solicitação.

O uso do PHP como módulo foi muito bem sucedido no passado porque havia menos barreiras à comunicação com o servidor HTTP. O cenário CGI, por outro lado, depende da comunicação em rede entre o servidor http e, por exemplo, a execução do código.

Isto costumava ser um problema para as configurações PHP. Hoje em dia, o PHP se sobressai claramente neste campo!

PHP-FPM permite que um servidor como o nginx ou Apache execute o código PHP como se fosse um script CLI. Desta forma, cada pedido é 100% isolado dos outros.

Isto também significa que o servidor HTTP pode escalar independentemente do executor do código PHP. Utilizamos nossas novas tecnologias que nos permitem escalar verticalmente.

Usando PHP e CGI, você pode atualizar instantaneamente sua aplicação sem ter que reiniciar o servidor HTTP toda vez que você a implanta. Com o uso crescente de equilibradores de carga, isto não é mais tão importante, mas ainda vale a pena mencionar.

Outra grande vantagem do PHP-FPM é que sempre que um script PHP falha, ele só afeta essa solicitação. O restante da aplicação pode continuar a funcionar normalmente porque os recursos não são compartilhados.

Se ignorarmos o uso do PHP como módulo, a forma como ele funciona na Internet é fundamental: servidor HTTP ⇨ PHP-FPM (servidor) ⇨ PHP.

É por isso que se diz frequentemente que o PHP é, por natureza, radicalmente escalável.

Entretanto, o PHP ainda é uma linguagem de script. Como é executado em um ambiente CGI individualmente para cada solicitação, isto também significa que sua característica mais escalável é também um dos maiores gargalos de desempenho.

Veja o vídeo abaixo de como funciona o PHP

 

Como funciona o scripting com PHP?

O PHP está escrito em C e seu poder é enorme.

Um intérprete PHP lê arquivos contendo código PHP, verifica a sintaxe, converte o código PHP em código operacional compreensível e executa o código operacional.

Em resumo, ele interpreta, compila e executa o php.

Todas as vezes (mais sobre isso em um momento).

Cada vez que você tenta executar um script PHP, você encontra coisas diferentes em momentos diferentes:

Erros de sintaxe e correções lingüísticas ocorrem durante a interpretação e compilação. Erros lógicos (por exemplo, exceções) só ocorrem na fase de execução.

PHP usa uma árvore de sintaxe abstrata (AST) para entender o significado de um elemento em um documento PHP.

Esta árvore de sintaxe descreve as estruturas linguísticas como regras de compilação, que são traduzidas para a codificação Zend VM após a compilação. A Zend VM é capaz de interpretar estes códigos.

Portanto, se você pensar nisso, a parte mais importante da execução do código PHP ocorre quando a Zend VM gera os códigos de função. Em outras palavras, o que dá o resultado esperado.

Afinal, executar cada consulta não parece muito inteligente se a sintaxe PHP tiver que ser compilada em código para cada nova consulta.

É exatamente para isso que serve a OPcache. Não existe uma solução impecável.

OPcache permite que o PHP tire vantagem da memória compartilhada: leia/escreva scripts já interpretados e otimize a execução futura.

Por exemplo, quando um pedido vai para index.php, o php é interpretado, compilado e executado. Na segunda vez que o pedido chega ao index.php, o php simplesmente carrega a coleta da OPcache e a executa.

No entanto, isso logo mudará. Com o PHP 7.4, o prefixo opcache foi adicionado ao PHP. Esta função permite que uma série de arquivos php seja pré-carregada quando eles são carregados no servidor. A primeira vez que uma solicitação chega ao index.php, o php obtém o arquivo compilado diretamente do cache opcache. Não há necessidade de analisar o documento durante todo o pedido.

Arte tecnologia: como elas se unem e suas vantagens

Fim do RH tradicional e o impacto tecnologico

Por que você está me contando tudo isso?

Eu acho que os engenheiros de PHP (e Python) estão acostumados a ter muito conhecimento sobre como tudo está conectado no backend, porque nossas linguagens não costumam ter muita magia de terceiros ou programação de ‘caixa preta’.

Também acho que isto mudou com o tempo, pois o software de código aberto provou ser não só uma atração, mas também um grande modelo de negócios. Cada vez mais idiomas exigem que os engenheiros saibam como tudo funciona e estão se tornando cada vez mais independentes do fabricante.

Mas ainda não estamos lá, e o ecossistema PHP precisa ser conquistado a fim de investir em melhorias de desempenho e estabilidade. Se você souber quando e onde as coisas acontecem, você pode otimizar a maneira como elas acontecem.

Esperamos que este artigo tenha ajudado você a entender como o mecanismo PHP funciona, que ferramentas ele usa e com que palavras-chave você pode se deparar.

Se você tiver perguntas que eu não respondi ou se achar que cometi erros nesta revisão, não hesite em me contatar e se eu achar que há um lugar para isso, atualizarei este post para que possamos aprender uns com os outros.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.