Você está na página 1de 12

TEMA 1 - Introdução à Programação

WEB com PHP

Introdução
Existem atualmente inúmeras linguagens de programação, cada uma com
suas vantagens e desvantagens. Seus admiradores e seus críticos.

“Só existem dois tipos de linguagens de


programação: as que todo mundo reclama e as que
ninguém usa” (Bjarne Stroustrup)

Mas o que realmente significa “linguagem de programação para a WEB”?

Quando se fala em programação WEB deve-se levar em consideração a


existência de, pelo menos, dois participantes:

● cliente: o que está em execução no lado do cliente, client-side

● servidor: o que está em execução no servidor, chamada de server-side

Basicamente no cliente tem-se, o assim chamado, navegador WEB.


Apesar de ter-se um início de navegador com o gopher (não era exatamente
HTTP) e do WorldWideWeb criado em 1991, foi o Netscape Navigator, criado
em 1994, que inaugurou a era do www.

Na época era tudo no lado do cliente, ou "client-side" como iremos passar


a referenciar. O servidor apenas fornecia um arquivo estático que era
interpretado pelo Netscape, ou seja, havia uma linguagem de programação
que o navegador executava, como usar a tag <blink> que faz o texto ficar
piscando na tela.
Depois vieram os servidores que também executam código, ou seja, o
cliente (navegador) já recebe o resultado de uma execução. Quando o servidor
passa a executar um código, diz-se que é uma linguagem server-side.

E qual linguagem de programação pode ser executada pelo cliente?


Aquelas que o navegador do cliente entende e suporta. Todo navegador
precisa, evidentemente, saber lidar com a linguagem de marcação HTML
(atualmente em sua versão 5).

HTML e CSS
Na atualidade os principais navegadores existentes são o Edge, Chrome,
Firefox e Safari. Desculpe se você usa algum outro e o considera o melhor de
todos. De fato existem muitos, inúmeros. Quando se abre para android então,
fica difícil contar.

O que todos estes navegadores precisam saber interpretar é a linguagem


de marcação HTML e CSS. Estas duas linguagens foram objeto de estudo em
sua disciplina de Introdução ao Desenvolvimento WEB e não serão
aprofundadas nesta disciplina.

Na Figura 1 tem-se um pequeno exemplo de código HTML com CSS.


Figura 1: Exemplo de HTML e CSS
Fonte: autor

Observa-se na linha 1 a definição da versão do HTML usada. É prudente


sempre informar o navegador sobre qual versão você está usando, podendo
até mesmo não ser HTML. Antes da versão 5 do HTML esta linha era bem
extensa, com muitos detalhes. A versão 5 do HTML simplificou de forma que
havendo apenas esta linha, resolve o problema. A sintaxe HTML, CSS ou tudo
que envolva formatação no navegador deve respeitar o padrão w3c. Se você
copiar este arquivo como está e submetê-lo ao https://validator.w3.org/ verás
que é um HTML sem nenhum erro.
As linhas 6 até 15 são definição de estilo CSS onde se configurou a
tabela para ter bordas e cores (novamente, os detalhes desta configuração
são assunto da disciplina anterior).

Já nas linhas 18 até 25 se criou uma pequena tabela com duas linhas e
duas colunas. A Figura 2 mostra como o navegador Chrome desenhou esta
tabela.

Figura 2: Uma tabela HTML de exemplo


Fonte: autor
Você pode verificar o w3c-validator deste HTML usando o link direto
https://validator.w3.org/nu/?doc=https%3A%2F%2Fprofelgio.duckdns.org%2F
web%2Fexemplo.html.

É importante lembrar que estamos, ainda, nos referenciando às


linguagens que executam no lado do cliente, ou seja, no navegador.
Outras linguagens client-side

Ainda no navegador, existem outras tantas linguagens que foram, ao


longo do tempo, dando mais poderes ao desenvolvedor.

No passado, teve-se um “boom” da linguagem flash, até que a Apple


negou-se a suportar flash em seu navegador safari por legítimos problemas de
segurança. Com a popularização da maçã, principalmente no mundo mobile,
precisou-se abandonar esta linguagem.

Também viveu-se a era do “applet java” onde o navegador executa um


aplicativo java recebido pelo servidor. É necessário a instalação de um plugin
no navegador para esta execução. Java é ainda muito usado, principalmente
por alguns bancos que fazem questão de executar seus próprios aplicativos no
cliente, como um aplicativo de teclado virtual. Mas não pode-se negar que
estamos na era da programação Javascript.

O JS revolucionou a forma como a Internet funciona. Antes tinham-se


páginas estáticas, em HTML e CSS. A cada ação nesta página, torna-se
necessário enviar para o servidor e receber uma outra página.

Com JS pôde-se ter “páginas vivas”, que realmente estão em execução.


Você passou o mouse sobre uma área? Pronto. Sem você clicar algo acontece
como a abertura de uma promoção.

Java script também foi objeto de estudo na sua disciplina anterior, de


Introdução ao Desenvolvimento WEB.
Programação frontend e back-end
O desenvolvimento WEB requer várias competências, até mesmo de
design: escolher as cores certas, posição e tamanho das letras. Até mesmo
competências de psicologia são necessárias, como saber qual cor desperta
qual sentimento.

O responsável por realizar esta tarefa, cuidar do visual da página, é o


desenvolvedor frontend.

Um desenvolvedor frontend precisa conhecer HTML, CSS e JS, para


poder criar a página da maneira visualmente pretendida. Deve, portanto,
conhecer linguagens client-side.

Já os detalhes do servidor, banco de dados, tabelas, regras de negócio,


são tarefas do desenvolvedor back-end.

back-end quer dizer “o que está por baixo”, não se vê. Ao menos não para
a visão dos usuários. Em uma página você coloca seu login e sua senha e
clica em “Conectar”. Este usuário e senha é enviado ao servidor que irá
retornar uma página de OK ou de acesso negado. Como é verificado se o
usuário existe e se com aquela senha, de que forma serão armazenadas as
senhas dos usuários, onde e como serão protegidas: tudo back-end.

Um desenvolvedor back-end precisa conhecer as linguagens do


server-side, protocolos de comunicação, formatos de envio de dados, banco
de dados, noções de segurança e uma série de outras competências.
Linguagens server-side
Quando se diz que o PHP é uma linguagem de programação para a WEB,
exatamente o que isso significa? Que só pode ser usada para WEB? Que não
é possível usar outra linguagem de programação?

Uma implementação WEB server-side (back-end) pode ser realizada em


praticamente qualquer linguagem. Quer fazer em C? Pode. Alguns portais
tinham, por muitos anos, seu webmail escrito em C. Você acessava um
webmail.exe lá.

Em 2001 eu fiz uma página para enviar trabalhos dos alunos em bash.
Podia ser em C, em perl ou em qualquer outra linguagem que gostasse.

Só é necessário que o servidor seja configurado para executar o código,


ao invés de realizar o seu download.

Se em um servidor Windows você acessa a seguinte URL


http://servidor/teste.exe é provável que você irá baixar o arquivo teste.exe na
sua máquina. Por questões de segurança, um servidor HTTP só executa
coisas que foi precisamente configurado para tal. Nas configurações do
servidor. No caso do servidor do Windows, tipicamente tudo que estiver na
pasta scripts será executado:

● http://servidor/teste.exe irá baixar o programa teste.exe para sua


máquina

● http://servidor/scripts/teste.exe irá fazer com que o servidor execute o


teste.exe e você verá o resultado desta execução.
Isso tudo é configurável e pode não estar assim em sua instalação
padrão.

Mas o que é então uma linguagem de programação WEB?

Nem queiram saber como foi complicado fazer uma página em 2001
usando bash. Se for em C segue a mesma complicação. Existem protocolos
bem definidos para a conversa entre cliente e servidor por HTTP. Protocolos
que definem como um som é representado, por exemplo. Um anexo. Tudo. Se
você usa uma linguagem que não é “WEB”, terá que pensar em tudo isso.

Uma linguagem de programação WEB é, portanto, apenas uma que foi


pensada para resolver estes problemas. Linguagens como o PHP já tratam
todos estes detalhes e te entregam os dados recebidos de uma forma
organizada.

O PHP
O PHP é uma linguagem de uso genérico. Não é verdade que só é uma
linguagem para WEB. Ela é também para WEB e, por conta do sucesso, é
mais lembrada por isso. Em um artigo interno publicado aos alunos da Ulbra
em 2006, demonstrou o uso do PHP para resolver um problema de filtro de
proxy1. Não era WEB

Mas aqui iremos ver o PHP como uma linguagem para a WEB. Nosso
foco, nesta disciplina, é a programação back-end.

1
https://profelgio.duckdns.org/~elgio/disciplinas/?MAT=guest&ARQNOME
=080508-tempoLing.html&DISC=outras
O PHP é uma linguagem interpretada. Por ser uma linguagem
server-side, quem a executa é o servidor, ou seja, o código não chega ao
navegador.

O servidor precisa ter o PHP instalado e configurado para executar. Você


pode instalar, se quiser, uma versão do XAMPP ou WAMPP, pacote que já tem
um servidor HTTP e o PHP.

O PHP está, atualmente, em sua versão 8. Distribuições Linux mais


clássicas como o Debian, ainda não tem o PHP 8 em sua árvore oficial,
embora não haja dificuldade em instalar (Outubro de 2021) por considerar
ainda em desenvolvimento.

O PHP referência para esta disciplina, nesta edição, será a versão 7. Se


você for instalar um PHP para usar nesta disciplina, cuide para instalar esta
versão. O servidor de testes disponibilizado pelo professor segue a versão 7.

Esqueleto de um programa em PHP

Quando você quer escrever código em PHP deve colocar o código entre
as tags <?php e ?>. O que estiver dentro é PHP e será executado pelo
servidor. O que estiver fora é HTML e será enviado ao cliente, navegador,
como está.

Para que o servidor execute códigos PHP é necessário instalar o


interpretador de php no servidor e configurar regras sobre quais arquivos
serão executados. Tipicamente o servidor é configurado para executar todos
os arquivos que tiverem a extensão .php. É assim na instalação padrão do
apache (servidor HTTP) com o mod_php.

Sendo assim, você pode buscar, pela URL, o arquivo exemplo1.php


mostrado na Figura 3 (https://profelgio.duckdns.org/web/exemplo1.php).

Figura 3: Código do arquivo exemplo1.php


Fonte: autor
Analisando a Figura 3, vê-se que as linhas 1 a 3 não estão dentro de uma
tag php, logo, são HTML puro e são enviadas ao navegador. Na linha 4
abre-se uma tag php que é fechada na linha 6. Logo a linha 5 é executada
pelo servidor. Ainda não vimos quais comandos php existem, mas a linha 6
apenas define uma variável de nome teste com o conteúdo “Teste”. Na linha 7
e 8 mais html (fora das tags), mas veja uma curiosidade na linha 7: se abriu e
fechou a tag só para imprimir a variável teste.

O navegador recebe só o que é HTML ou o que o servidor gerou ao


executar as linhas. Ao invés do navegador receber, por exemplo, <?php echo
$teste;?> como está na linha 7, ele só recebeu o resultado da execução do
echo pelo servidor. Esta sintaxe php não é vista pelo navegador. O que o
cliente recebe é o visto na Figura 4.
Figura 4: visão do navegador para a execução do exemplo1.php
Fonte: autor
Embora se possa ficar abrindo e fechando tags php o tempo todo, isso
pode gerar um código bem confuso e não é recomendado. Alguns
programadores gostam de abrir e fechar para resolver o problema das aspas.

Se todo o código anterior ficasse dentro de uma tag php, teria que ser
desta forma como na Figura 5.

Figura 5: visão do navegador para a execução do exemplo1.php


Fonte: autor
Como o que está dentro das tags php é executado pelo servidor, o
simples envio da palavra <html> (linha 3) precisa ser através de um comando
de impressão (no caso foi usado o echo). Se o texto tivesse aspas, como no
caso de um <a href=” estas aspas teriam que ser escapadas no echo, ficando
bem esquisito.

Mas veremos maneiras mais nobres e menos confusas de se fazer isso.

Você também pode gostar