PHP?! Isso ai não morreu?
Published: 2022-02-21 12:59:24

Se você é uma pessoa desenvolvedora de software ou uma pessoa que atua em alguma área relacionada a tecnologia, sem dúvidas, você já ouviu a seguinte frase:

_“PHP? Isso ai vai morrer em breve!”_

Felizmente, essa afirmação é uma grande **mentira!** O PHP e todo seu ecossistema vem a cada dia se renovando e implementando novas funcionalidades para que essa _**tecnologia se mantenha viva por muito tempo!**_

Se você acredita que o PHP ainda é aquela tecnologia onde coloca JS + PHP + HTML + Instruções SQL no mesmo arquivo, você está completamente enganado e este artigo é para você! 

O objetivo desse artigo é apresentar as principais mudanças do PHP nos últimos anos e como está o cenário do PHP atualmente.

## 1 - PHP Foundation
Acredito que essa seja a principal mudança do PHP e que vai garantir muitos anos de vida para essa tecnologia. Em novembro de 2021 foi criado a [PHP Foundation](https://opencollective.com/phpfoundation), essa entidade tem como responsabilidade receber doações de pessoas e empresas e distribuir o valor arrecadado para o *core-team* de desenvolvedores do PHP.
Com a PHP Foundation e o dinheiro arrecadado o *core-team* poderá ter disponibilidade total de tempo para aprimorar o PHP e implementar novas funcionalidades e correções de bug, sem se preocupar em ter um emprego para pagar os boletos, visto que o dinheiro virá da PHP Foundation! 

Caso você queira entender mais sobre a PHP Foundation, recomendo a leitura deste [artigo.](https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/)

## 2 - Novas atualizações do PHP. 
O *core-team* do PHP vem trabalhando fortemente para implementar novas funcionalidades na linguagem, como melhoria de performance, novos recursos para melhorar a experiência de desenvolvimento e afins. No ano de 2020 tivemos o lançamento do PHP 8.0 e no mês de novembro de 2021 tivemos o lançamento do PHP 8.1 trazendo muitas novidades e recursos interessantes para a linguagem! 
Para acompanhar as novidades da versão do [PHP 8.0](https://www.php.net/releases/8.0/pt_BR.php) e [PHP 8.1](https://www.php.net/releases/8.1/pt_BR.php) basta clicar nos link atrelados. 

## 3 - Just In Time (JIT) do PHP

Muita gente argumenta que o PHP não é tão performático, no PHP 8 foi apresentado o motor de compilação JIT, dessa forma, com o JIT ativado o seu código é mais performático pois ele não é executado na ZendVM, mas sim a nível de instrução direto de CPU.

Segue abaixo uma imagem mostrando como o JIT se comportou em benchmarks sintéticos.

![Comparação GIT](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ksk6z80g54eygh1phck4.png)
 

Neste [podcast com o Zeev](https://phpinternals.news/7) você pode entender um pouco melhor sobre o JIT e como ele está funcionando pode debaixo dos panos no PHP 

Deixo também este [vídeo](https://www.youtube.com/watch?v=WLx0z9kloro) do [Vinicius Dias](https://twitter.com/cviniciussdias) onde ele explica sobre o JIT no PHP!

## 4 - Com PHP é possível trabalhar de forma assíncrona!

**SIM, ISSO MESMO QUE VOCÊ LEU**
Se você acha que NodeJS/JavaScript é a _**bala de prata**_ para se trabalhar com requisições de forma assíncrona, você está completamente **enganado** hoje existem muitos projetos escritos em PHP para que seja possível trabalhar de forma assíncrona utilizando todo o ecossistema do PHP. 
Caso você queira trabalhar de forma assíncrona/não bloqueante com PHP você pode se aventurar em diversas tecnologias, sendo elas:

- [Swoole](https://github.com/swoole)
- [ReactPHP] (https://github.com/reactphp)
- [RevoltPHP] (https://github.com/revoltphp)
- [AMP](https://github.com/amphp)
- [Workman] (https://github.com/walkor/workerman)

Confesso que o Swoole tem sido o que mais tenho olhado principalmente pelos [frameworks](https://github.com/swoole/awesome-swoole#frameworks) criados a partir do Swoole e também pela aceitação de grandes frameworks que estão utilizando o Swoole, como o [Laravel Octane](https://laravel.com/docs/9.x/octane), [Symfony Runtime](https://symfony.com/doc/current/components/runtime.html) e o [Mezzio-Swoole](https://docs.mezzio.dev/mezzio-swoole/)

Vou deixar este [artigo](https://www.treinaweb.com.br/blog/introducao-ao-swoole-framework-php-assincrono-baseado-em-corrotinas) do [Kennedy Tedesco](https://twitter.com/KennedyTedesco), onde ele apresenta o Swoole e faz uma comparação com outras tecnologias do mercado.

O PHP também tem implementado novas soluções nativas para trabalhar com fluxos não bloqueantes, no PHP 8.1 foi lançado as famosas [Fibers](https://www.php.net/manual/pt_BR/language.fibers.php), que **basicamente** cria uma estrutura de pilhas que são interrompíveis e que podem ser manipuladas de forma assíncrona sem quebrar o fluxo ou esperar que determinada Fiber termine para iniciar a outra.

## 5 - Frameworks Modernos

Como dito anteriormente o PHP se tornou algo moderno e a maioria dos seus frameworks entenderam essa evolução.

Antigamente era comum encontrar arquivos em PHP onde tinha uma conexão com banco de dados, que logo depois retornava um array com estes dados, que era percorrido por um laço `for` e neste laço for imprimia as `tags html` com `echo`! 

Calma, não se preocupe o PHP não está mais desta forma! Com o avanço da Web e de frameworks javascripts como Vue.JS e React.JS o PHP tem a cada dia sendo utilizado apenas para funcionalidades de back-end para construção de API's e afins. 

O ecossistema da linguagem também conta com frameworks incríveis que podem ser utilizados para resolver problemas utilizando estrutura MVC (Model, View, Controller) ou para criação de API's. 

Os principais frameworks de mercado hoje são o [Symfony](https://symfony.com/) e o [Laravel](https://laravel.com/) que possuem seus próprios times para desenvolver novas funcionalidades, criar estruturas mais performáticas e auxiliar a experiência do desenvolvedor durante o seu dia a dia de trabalho. 

Por exemplo, com o Laravel, você pode construir a parte de front-end da sua aplicação utilizando as [Blades Templates](https://laravel.com/docs/9.x/blade), [Inertia.JS](https://inertiajs.com/), [Livewire](https://laravel-livewire.com/) ou até mesmo [Vue.JS](https://vuejs.org/), já com o Symfony é muito comum você encontrar aplicações utilizando o [Twig](https://twig.symfony.com/), [Stimulus](https://stimulus.hotwired.dev/) e também na documentação do Symfony explica como utilizar [React.JS](https://symfony.com/doc/current/frontend/encore/reactjs.html)

Para trabalhar com banco de dados nestes frameworks agora é feito o uso de ORM. Laravel possui uma excelente integração com o [Eloquent](https://laravel.com/docs/9.x/eloquent) que utiliza conceitos de Active Records, enquanto o Symfony utiliza o [Doctrine](https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/index.html) que utiliza conceitos de Object Relational Mapper. 


## 6 - Comunidade do PHP

Um dos principais motivos para eu gostar tanto de PHP é a sua comunidade! O ambiente de comunidade do PHP é totalmente colaborativo, onde as pessoas realmente querem construir não só softwares com a tecnologia, mas permitir a troca de conhecimento entre pessoas e gerar amizade.

Se você quiser conhecer as comunidades de PHP, basta acessar este [repositório](https://github.com/brasil-php/comunidades) e se conectar! 

Qualquer dúvida é só me mandar uma DM também :) 

Se você chegou até o final deste artigo, gostaria de te agradecer e pedir para você compartilhar este conteúdo com mais pessoas, dessa forma iremos evangelizar o PHP e mostrar que esta tecnologia está longe de morrer.

Gostaria também de agradecer a quem me ajudou na construção desse artigo, executando o trabalho de revisar o que foi abordado aqui!

Muito obrigado 
[Thalita Marra](https://mobile.twitter.com/ThaliMarra) 
[Marlon Henrique](https://mobile.twitter.com/MarlonHenq)