{"id":44422,"date":"2023-10-02T10:04:49","date_gmt":"2023-10-02T13:04:49","guid":{"rendered":"https:\/\/www.locaweb.com.br\/blog\/?p=44422"},"modified":"2024-07-30T17:31:38","modified_gmt":"2024-07-30T20:31:38","slug":"evolucao-php","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/evolucao-php\/","title":{"rendered":"Evolu\u00e7\u00e3o do PHP baseada em efici\u00eancia"},"content":{"rendered":"\n<p><em>A evolu\u00e7\u00e3o do PHP reflete o crescimento da internet e as exig\u00eancias cada vez maiores de recursos, efici\u00eancia e produtividade. Saiba mais detalhes<\/em>!<\/p>\n\n\n\n<p>Existe um aspecto estrat\u00e9gico que interfere em todo o <strong>desenvolvimento tecnol\u00f3gico da internet<\/strong>: tudo custa dinheiro. Tudo mesmo, do uso de sistemas ao tempo em que uma determinada aplica\u00e7\u00e3o fica ociosa. <\/p>\n\n\n\n<p>Assim, uma parte importante do<a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-ci-cd-em-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\"> desenvolvimento de software<\/a> procura aumentar a efici\u00eancia e a produtividade dos sistemas para <strong>reduzir custos e melhorar os resultados<\/strong> das empresas. \u00c9 assim, por exemplo, com o <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/tudo-sobre-linguagem-de-programacao-php\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Como-o-PHP-funciona-na-Web_imagem-1.png\" alt=\"\" class=\"wp-image-44461\" style=\"width:812px;height:500px\" width=\"812\" height=\"500\" srcset=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Como-o-PHP-funciona-na-Web_imagem-1.png 812w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Como-o-PHP-funciona-na-Web_imagem-1-500x308.png 500w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Como-o-PHP-funciona-na-Web_imagem-1-768x473.png 768w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Como-o-PHP-funciona-na-Web_imagem-1-150x92.png 150w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><figcaption class=\"wp-element-caption\"><em>Vinicius Dias, instrutor na <a href=\"https:\/\/www.alura.com.br\/\" target=\"_blank\" rel=\"noreferrer noopener\">Alura<\/a> e Zend Certified Engineer. Foto: Renan Facciolo.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Em sua apresenta\u00e7\u00e3o no <a href=\"https:\/\/php.locaweb.com.br\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP Community Summit<\/a>, evento realizado pela <strong>Locaweb<\/strong> com coparticipa\u00e7\u00e3o do <a href=\"https:\/\/phpsp.org.br\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHPSP<\/a>, o desenvolvedor full Stack <a href=\"https:\/\/www.linkedin.com\/in\/cviniciussdias\/\" target=\"_blank\" rel=\"noreferrer noopener\">Vinicius Dias<\/a>, instrutor na <a href=\"https:\/\/www.alura.com.br\/\" target=\"_blank\" rel=\"noreferrer noopener\">Alura<\/a> e Zend Certified Engineer, mostrou como a <strong>evolu\u00e7\u00e3o do PHP <\/strong>sempre esteve diretamente ligada a necessidades t\u00e9cnicas relacionadas ao aumento de performance dos sistemas. <\/p>\n\n\n\n<p>\u201cO PHP nasceu quando a complexidade na internet aumentou e a demora na devolu\u00e7\u00e3o de requisi\u00e7\u00f5es passou a ser considerada excessiva. Isso l\u00e1 nos tempos em que \u2018tudo era mato\u2019 \u2013 e esse <strong>framework<\/strong> continua valendo at\u00e9 hoje\u201d, comenta o especialista.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">E como era no in\u00edcio?<\/h2>\n\n\n\n<p>Nos prim\u00f3rdios da internet, era usada a <strong>Common Gateway Interface (CGI)<\/strong>, um programa em C ou <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/vale-a-pena-aprender-linguagem-c-plus-plus\/\" target=\"_blank\" rel=\"noreferrer noopener\">C++<\/a> que recebia as requisi\u00e7\u00f5es que chegavam ao <a href=\"https:\/\/www.locaweb.com.br\/blog\/produtos\/vps-e-cloud\/vantagens-servidores-virtuais\/\" target=\"_blank\" rel=\"noreferrer noopener\">servidor Web<\/a>, fazia a execu\u00e7\u00e3o e mandava a resposta para a sa\u00edda, para ser devolvida para o usu\u00e1rio. <\/p>\n\n\n\n<p>A cada nova requisi\u00e7\u00e3o, um novo processo era criado, fazia o processamento e era encerrado. \u201cCada requisi\u00e7\u00e3o incorria em todo o custo de inicializar recursos, alocar mem\u00f3ria e fazer o processamento. No in\u00edcio, as perdas eram aceit\u00e1veis, mas conforme a internet ganhou popularidade, esse processo passou a representar perda de performance\u201d, explica. Era preciso mudar.<\/p>\n\n\n\n<p>A mudan\u00e7a veio com o <strong>nascimento do PHP<\/strong>, um <strong>conjunto de ferramentas para facilitar a visualiza\u00e7\u00e3o do conte\u00fado<\/strong> e fazer uma separa\u00e7\u00e3o dos recursos. \u201cO PHP nasceu como uma template engine para facilitar a visualiza\u00e7\u00e3o das informa\u00e7\u00f5es, enquanto c\u00f3digos em C faziam o processamento\u201d, afirma Dias. <\/p>\n\n\n\n<p>Crescendo para al\u00e9m de um conjunto de bibliotecas de visualiza\u00e7\u00e3o, o PHP se tornou uma <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/linguagem-de-programacao-voltada-para-big-data-qual-devo-usar\/\" target=\"_blank\" rel=\"noreferrer noopener\">linguagem de programa\u00e7\u00e3o<\/a>.<\/p>\n\n\n\t\t<div class=\"wp-block-web-stories-embed web-stories-embed aligncenter\">\n\t\t\t<div class=\"wp-block-embed__wrapper\" style=\"--aspect-ratio: 0.600000; --width: 360px; --height: 600px\">\n\t\t\t\t<amp-story-player>\n\t\t\t\t\t<a href=\"https:\/\/www.locaweb.com.br\/blog\/web-stories\/principais-linguagens-de-programacao\/\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/programacao-web-1.png\"\n\t\t\t\t\t\t\t\twidth=\"360\"\n\t\t\t\t\t\t\t\theight=\"600\"\n\t\t\t\t\t\t\t\talt=\"Linguagens de programa\u00e7\u00e3o: tudo que voc\u00ea precisa saber!\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\t\t\t\tdecoding=\"async\"\n\t\t\t\t\t\t\t\tdata-amp-story-player-poster-img\n\t\t\t\t\t\t\t\/>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<\/amp-story-player>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>E ent\u00e3o veio o Apache<\/strong>&#8230;<\/h2>\n\n\n\n<p>Por muito tempo, o <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/nginx-ou-apache-qual-escolher-para-vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apache<\/a> foi a \u00fanica op\u00e7\u00e3o para trabalhar com PHP como linguagem de programa\u00e7\u00e3o. \u201cO Apache traz embutido um processador de PHP, fazendo com que, a cada nova requisi\u00e7\u00e3o, n\u00e3o fosse necess\u00e1rio inicializar o PHP. <strong>Essa configura\u00e7\u00e3o diminuiu muito o custo de processamento<\/strong>. E como essa feature j\u00e1 vinha pronta, era s\u00f3 habilitar, facilitou muito a vida dos devs\u201d, explica Dias. <\/p>\n\n\n\n<p>Assim, uma organiza\u00e7\u00e3o com um <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/como-escolher-o-melhor-servidor-de-aplicacao\/\" target=\"_blank\" rel=\"noreferrer noopener\">servidor<\/a> HTTP ganhou muito espa\u00e7o no ambiente de <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/conheca-3-areas-de-destaque-para-o-desenvolvimento-web\/\" target=\"_blank\" rel=\"noreferrer noopener\">desenvolvimento web<\/a> e, como consequ\u00eancia, impulsionou o uso do PHP.<\/p>\n\n\n\n<p>Mas nem sempre as novidades trazem somente lados positivos. A arquitetura oferecida pelo Apache fazia com que o servidor Web tivesse que lidar com <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/marketing-e-seo\/5-passos-para-criar-um-mapeamento-de-processos\/\" target=\"_blank\" rel=\"noreferrer noopener\">processos<\/a> adicionais. <\/p>\n\n\n\n<p>\u201cNo in\u00edcio esse custo ainda era mais vantajoso do que fazer as coisas \u00e0 moda antiga, mas, com o crescimento da internet, esse ponto passou a ser cada vez mais relevante\u201d, analisa Dias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A \u201cantiga modernidade\u201d<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"812\" height=\"500\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Evolucao-do-PHP_imagem-2.png\" alt=\"\" class=\"wp-image-44496\" srcset=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Evolucao-do-PHP_imagem-2.png 812w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Evolucao-do-PHP_imagem-2-500x308.png 500w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Evolucao-do-PHP_imagem-2-768x473.png 768w, https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2023\/10\/Evolucao-do-PHP_imagem-2-150x92.png 150w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><figcaption class=\"wp-element-caption\"><em>Foto: Renan Facciolo.<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Em 2010, surgiu o PHP-FHM, um passo que representou um enorme avan\u00e7o de performance para os servidores. \u201cO PHP-FPM \u00e9 inspirado no CGI original, com a diferen\u00e7a de que, a cada requisi\u00e7\u00e3o, n\u00e3o ocorre o caminho de iniciar\/processar\/finalizar o processo\u201d, conta o especialista. <\/p>\n\n\n\n<p>Em vez disso, o processo \u00e9 inicializado, recebe as requisi\u00e7\u00f5es, envia para processamento e cria pools de processos que podem receber v\u00e1rias requisi\u00e7\u00f5es. Assim como seus antecessores, o <strong>PHP-FHM encontrou uma forma de contornar inefici\u00eancias para gerar ganhos de produtividade<\/strong> e reduzir os custos de processamento. <\/p>\n\n\n\n<p>Mas ainda era poss\u00edvel evoluir, uma vez que essa arquitetura respeita a internet como ela nasceu (totalmente independente) e n\u00e3o compartilha recursos, pois as requisi\u00e7\u00f5es s\u00e3o independentes. Entre as desvantagens, est\u00e1 o fato de que a inicializa\u00e7\u00e3o tem um custo que se torna cada vez mais relevante. Era poss\u00edvel evoluir. E a evolu\u00e7\u00e3o veio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A \u201cnova modernidade\u201d<\/h2>\n\n\n\n<p>Com o <strong>React PHP<\/strong>, surgiu o conceito de <strong>\u201cevent loop\u201d<\/strong>, que evita a inicializa\u00e7\u00e3o constante dos eventos. \u201cO servidor Web em PHP passa a ser autocontido, deixando de precisar de <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/nginx-ou-apache-qual-escolher-para-vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apache ou Nginx<\/a> para receber requisi\u00e7\u00f5es. Aqui, o pr\u00f3prio PHP recebe as requisi\u00e7\u00f5es\u201d, explica o especialista. <\/p>\n\n\n\n<p>Isso permite que o PHP abra uma conex\u00e3o, suba o <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\">framework<\/a> e prepare todo o ambiente para trabalhar as requisi\u00e7\u00f5es que vir\u00e3o.<\/p>\n\n\n\n<p>\u201cO React PHP viabiliza a <strong>comunica\u00e7\u00e3o em tempo real<\/strong>, o tratamento de requisi\u00e7\u00f5es simult\u00e2neas e diversas opera\u00e7\u00f5es de I\/O em cada requisi\u00e7\u00e3o \u2013 o que, mais uma vez, diminui a ociosidade dos servidores e promove um uso mais inteligente dos recursos\u201d, analisa Dias.<\/p>\n\n\n\n<p>O <strong>React PHP<\/strong>, em sua vis\u00e3o, foi <strong>uma grande revolu\u00e7\u00e3o para o sistema<\/strong>, mas necessita de <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/porque-aprender-a-escrever-codigos\/\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00f3digos<\/a> espec\u00edficos para tarefas do dia a dia, como acesso a bancos de dados. <\/p>\n\n\n\n<p>\u201cA tecnologia exige a mudan\u00e7a dos frameworks para I\/O n\u00e3o bloqueante, o que \u00e9 facilitado com o uso de extens\u00f5es como o Swoole\u201d, comenta. O resultado \u00e9 um sistema um pouco menos amig\u00e1vel para iniciantes, mas com uma <strong>performance<\/strong> muito mais poderosa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Expectativas para o futuro<\/strong><\/h2>\n\n\n\n<p>Para Dias, <strong>o futuro pertence, cada vez mais, a aplica\u00e7\u00f5es que fa\u00e7am o c\u00f3digo PHP<\/strong> que conhecemos funcionar de forma ass\u00edncrona. \u201c\u00c9 parte de uma evolu\u00e7\u00e3o constante da tecnologia e que entrega cada vez mais performance\u201d, afirma. <\/p>\n\n\n\n<p>Ele, por\u00e9m, faz um alerta importante: n\u00e3o incorpore a <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/de-olho-no-digital\/jaques-haber-equalweb\/\" target=\"_blank\" rel=\"noreferrer noopener\">tecnologia<\/a> pela tecnologia. \u201cNem todo mundo vai precisar de I\/O n\u00e3o bloqueante. Por isso, vale sempre avaliar a necessidade do uso e adotar a melhor solu\u00e7\u00e3o para cada caso, segundo a demanda do cliente\u201d, completa.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A evolu\u00e7\u00e3o do PHP reflete o crescimento da internet e as exig\u00eancias cada vez maiores de recursos, efici\u00eancia e produtividade. Saiba mais detalhes! Existe um aspecto estrat\u00e9gico que interfere em todo o desenvolvimento tecnol\u00f3gico da internet: tudo custa dinheiro. Tudo mesmo, do uso de sistemas ao tempo em que uma determinada aplica\u00e7\u00e3o fica ociosa. Assim, [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":44446,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-44422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/44422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=44422"}],"version-history":[{"count":16,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/44422\/revisions"}],"predecessor-version":[{"id":50000,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/44422\/revisions\/50000"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/44446"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=44422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=44422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=44422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}