1  PHP e PHP-CLI

O PHP foi criado em 1993 pelo programador Rasmus Lerdorf onde a abreviação fazia referência a Personal Home Page, que posteriormente foi mudada para o acrônimo PHP Hypertext Preprocessor. O PHP é uma linguagem interpretada e atualmente é uma das mais utilizadas em desenvolvimento web. Em razão de seu habiat natural ser a web, seu principal objetivo voltou-se para implementação veloz, simples e eficiente de soluções para e tais ambientes. Entre suas principais características estão:

Apesar da forte concorrência de NodeJs, Python e outras linguagens, o PHP manteve sua cota justa como a linguagem amplamente usada na web. Em 2024, aproximadamente 77% dos sites ativos usam PHP como sua linguagem de programação do lado do servidor. Esta lista incluía sites populares como Facebook, Wikipedia, WordPress e muitos outros.

Com atualizações constantes e uma comunidade ativa de desenvolvedores, o desenvolvimento web PHP continua a ser altamente relevante em 2024. 25,8% dos desenvolvedores web preferem PHP e 81% de todos os usos do PHP ainda são para desenvolvimento web.

PHP
75.7%
Ruby
6.0%
ASP.NET
5.7%
Java
5.0%
JavaScript
3.6%
Scala
3.5%
Static-Files
1.7%
Python
1.3%
ColdFusion
0.2%
Perl
0.1%
Erlang
0.1%
Gráficos de barras com porcentagens de sites que utilizam as linguagens de programação do lado do servidor. Um site pode operar com mais de uma linguagem no backend.
Fonte: W3Techs.com, 13 de Outubro de 2024

Como o PHP é uma linguagem server-side então utilizamos um servidor web para executar seus programas. Um servidor web amplamente utilizado é o apache2 que é implementado em ambientes Linux. Ao ativar o servidor apache2, ele fica escutando as requisições HTTP encaminhadas por usuários da rede até o servidor. Ao chegar uma requisição ao servidor, o apache2 inicia a execução do programa de acordo com o que foi solicitado. Assim como diversos sites, os programas implementados nos servidores web são majoritariamente escritos em PHP. Em linhas gerais, ao terminar de processar a requisição HTTP, o servidor web responde a solicitação do usuário a partir do resultado da saída gerada pelo programa em PHP. Essencialmente as respostas geradas pelo PHP são arquivos em formato texto. Regularmente estes arquivos estão escritos na linguagem de marcação HTML e são lidos e renderizados nos browsers, que por sua vez são exibidos ao usuário no monitor.

Apache
28.7%
Microsoft-IIS
4.4%
Porcentagens de sites que usam diversos servidores web
Fonte: W3Techs.com, 11 Outubro 2024

Com o surgimento do PHP-CLI o ambiente do PHP se ampliou podendo agora desenvolver aplicações desktop. Em linhas gerais, o PHP-Command-Line Interface (CLI) é uma interface que permite a execução do scripts PHP diretamente no terminal sem a exigência de um servidor web. Essa funcionalidade é especialmente útil para desenvolvedores que desejam executar scripts de forma rápida e eficiente, facilitando tarefas como automação, manutenção de sistemas e execução de scripts de longa duração.

Uma das principais vantagens do PHP CLI é a sua capacidade de executar scripts sem a sobrecarga de um servidor web. Isso significa que os desenvolvedores podem testar e depurar seus códigos de maneira mais ágil. O PHP CLI além de possibilitar a criação de scripts de manipulação de arquivos, tarefas agendadas via cron jobs como backups, atualizações de banco de dados e com eventual exportação para um arquivo CSV, admite ainda que essas execuções ocorram em segundo plano. Isso torna sua utilização muito vantajosa. Adicionalmente, o PHP CLI apresenta um maior desempenho frente ao PHP Web tradicional. Isso ocorre devido as restrições impostas pelo servidor web. Tais limitações envolvem o consumo de memória e tempo de execução em função da necessidades de compartilhamento de recursos mediante as chegadas de diversas requisições HTTP.

1.0.1 Instalação PHP

Durante nossa disciplina é essencial ter o PHP instalado em uma máquina física ou mesmo virtualizada para ter contato e prática com a linguagem. Ainda que não essencial, é recomendável a instalar de um servidor web, onde indicamos fortemente o apache2. Em meio a esse ambiente, surge o tema banco de dados que é de extremamente importante. Aproveitando a intersecção do assuntos, recomendamos concomitantemente a instalação do PHP e o apache2 os SGBDs MariaDB ou do MySQL. Pois desta forma, podemos economizar tempo ao mesmo tempo em que otimizamos o aprendizado ao integrar todos esses temas. Esses softwares são vastamente utilizados em conjunto. Isso ocorre de tal sorte que é conhecido pelo termo LAMP que é designado por Linux, Apache2, MySQL ou MariaDB e PHP.

Caso ainda não tenha instalado o PHP em seu ambiente bem como servidor web e um banco de dados, ou deseja instalar o LAMP em outra máquina, então vamos preparar o nosso ambiente de desenvolvimento.

Figura 1.1: Comandos para instalar o LAMP

Há diversos fóruns na internet com instruções de como instalar o LAMP. Alternativamente, para facilitar a instalação do LAMP você também pode seguir os procedimentos descritos na Figura 1.1 utilizando para isso os seguintes comandos

wget -O instalacaoLAMP https://padawan.click/shellscript/instalacaoLAMP.sh
sudo chmod +x instalacaoLAMP && bash instalacaoLAMP

Caso a operação seja bem sucedida, um aviso será exibido na tela como mostra a Figura 1.2. No entanto, caso a mensagem de falha ocorra como na Figura 1.3, verifique se todos passos foram feitos corretamente. Se ainda assim persistir, busque nos foruns como instalar ou envie um e-mail para [email protected] informando sobre o erro reportado.

Figura 1.2: Confirmação
Figura 1.3: Falha

Uma vez instalado o PHP, e caso opte por obter as saídas dos scripts por meio do servidor web, então salve suas as pastas e arquivos com contento código PHP dentro do diretório /var/www/html/. Por exemplo, suponha que desenvolvemos a primeira versão de um script em PHP para cadastrar os clientes de uma empresa onde o campo da data é automaticamente preenchido. Os códigos encontram-se no arquivo cliente.php com o script abaixo.

```{html}
<?php
$data_atual = date("d-m-Y");
?>
<html>
<head>
  <title>Formulário Cadastro Cliente</title>
</head>
<body>
<style>
    #area {
    display: flex;
      width: 100%;
      max-width: 650px;
      justify-content: center;
}
    input.info{
      margin: 3px 2px;
      padding: 3px 2px;
}
</style>
<div id="area">
  <form id="formulario" autocomplete="off">
    <fieldset>
      <legend>Cliente</legend>
      <label>Nome:</label><input class="info" class="campo_nome" type="text"><br>
      <label>Email:</label><input class="info" type="email"><br>
      <label>Celular:</label><input class="info" type="number"><br><br>
      <label>Data:</label><input class="info" type="text" value="<?php echo $data_atual ;?>" ><br><br>
      <label>CPF:</label><input class="info" type="number"><br><br>
      <input class="btn_submit" type="submit" value="Cadastrar">
    </fieldset>
  </form>
</div>
</body>
</html>
```

Na sequência fechamos o arquivo cliente.php e inserimos na pasta meuapp que se encontra por sua vez no diretório /var/www/html do apache. Por fim, o endereço completo e absoluto do arquivo poderia ficar da seguinte forma /var/www/html/meuapp/cliente.php. Como exercício, crie um arquivo, copie o código e crie o diretório meuapp dentro de /html/ com o arquivo cliente.php e realize os próximos passos.

Para interagir com o resultado do script desse arquivo, vamos até ao browser e no campo de URL inserimos os seguintes endereços.

http://localhost/meuapp/cliente.php
# ou
http://127.0.0.1/meuapp/cliente.php

Note que a componente da URL “http://localhost/” é como se representasse o /var/www/html/. Agora, ao pressionar enter na barra de endereços do browser, uma requisição HTTP do tipo GET é enviada ao servidor. Por fim, como resposta da requisição, obtemos a tela abaixo na Figura 1.4 o formulário de cadastro como já esperávamos.

Figura 1.4: Resultado da requisição ao arquivo cliente.php

A vantagem de se trabalhar dessa forma é que o desenvolvimento da parte gráfica de uma aplicação fica somente centrado na tríade do desenvolvimento web para front-end: Javascript, Css e HTML. O próprio PHP fornece um servidor web que podemos utilizá-lo como alternativa ao apache2 para poder executarmos códigos PHP. Veremos essa possibilidade mais a frente em outra oportunidade.