Tutorial PHP: Formas de execução e Hello World

Tutorial PHP: Formas de execução e Hello World

Neste post iremos abordar os primeiros aspectos de um script PHP, sua estrutura básica e escreveremos um Hello World bem básico, já aproveitando para conhecer os principais comandos de exibição de dados em tela, também veremos  as primeiras recomendações de padronização feitas pela documentação do PSR, o qual iremos nos basear durante os demais tutoriais.

Formas de execução dos Scripts

O PHP traz duas formas de execução distintas para seus scripts, pode ser utilizado como CLI (Command Line Interface), ou baseado em web, isso quer dizer que, basicamente, seus scripts podem ser rodados em uma janela terminal (prompt de comandos no Windows ou Shell em sistemas Unix Like), como tratando requisições http do lado servidor em uma aplicação WEB, na realidade sua utilização maior se dá da segunda forma, conseguimos encontrar diversos exemplos pela web a fora, visto que a maioria dos websites, e ferramentas livre, tais como Magento, WordPress, Moodle etc. são desenvolvidos em PHP.

Abaixo dois exemplos do que pode ser ser feito no modo CLI, sendo muito utilizado para rotinas de backup de banco de dados de servidores que não possuem backup automatizado.

Esta é uma interface básica criada no PHP, quem quiser ver o código fonte ele está no gist (endereço abaixo da imagem).

Tutorial PHP: Programa PHP terminal
Programa PHP terminal

Código-fonte: https://gist.github.com/RodriAndreotti/f3bcdff90335f993bb49

O vídeo a seguir mostra um joguinho bem legal feito em PHP com a biblioteca ncurses:

Estrutura básica

A estrutura básica de um script PHP contém a tag de abertura do próprio PHP juntamente aos comandos, isso é o suficiente para que o script seja executado pelo interpretador do PHP, veja abaixo:

<?php 
echo "Hello World"; 
?>

 

Este é um código básico que imprime na tela a mensagem “Hello World”.

Tags do PHP

Se observarmos, ele se inicia com a tag <?php, toda vez que um bloco de código PHP for utilizado este tag deve preceder o código, desde que ele tenha sido fechado, quando o código PHP for encerrado, e for utilizado algo de HTML, devemos encerrar o bloco com a tag de fechamento ?>.

O PHP pode usar as seguintes tags:

<?php ?> – Padrão do PHP e aceito em todos os servidores

<? ?>          – Funciona desde que a diretiva short_open_tags no php.ini esteja ativa

<% %>      – Funciona desde que a diretiva asp_tags no php.ini esteja ativa

No exemplo acima utilizamos o comando echo, este comando imprime alguma informação na tela, sua sintaxe básica é a do exemplo, podemos utilizar para ele aspas simples ou aspas duplas.

Quando for utilizado somente este comando dentro do bloco de código do PHP, o mesmo pode ser substituído por uma forma abreviada, conhecida como short-echo, por exemplo:

<?= "Hello World"; ?>

 

Para versões anteriores a 5.4.0 do PHP esta forma abreviada só funciona se a diretiva short_open_tags estiver ativada, em versões posteriores a 5.4.0 esta forma de trabalho é independente da diretiva short_open_tags.

Abaixo temos um exemplo de um bloco de comandos PHP dentro de um código HTML:

<!DOCTYPE html>
<html>
    <head>
        <title><?= $pageTitle; ?></title>
    </head>
    <body>
        <h1>Listagem de clientes</h1>
        <table>
            <thead>
                <tr>
                    <th>Nome</th>
                    <th>E-mail</th>
                </tr>
            </thead>
            <tbody>
                <?php
                // Qualquer rotina que traga os clientes do banco de dados
                foreach ($clientes as $cliente) {
                    echo '<tr>';
                    echo '<td>' . $cliente->getNome() . '</td>';
                    echo '<td>' . $cliente->getEmail() . '</td>';
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </body>
</html>

 

Por enquanto não nos preocuparemos com os comandos acima, simplesmente temos ali um exemplo de como o PHP se integra ao HTML.

Porém, observando o código, podemos ver o comando echo novamente para construir uma célula de uma tabela HTML, existem n formas de fazer isso, cada um prefere uma forma de trabalho.

Impressão em tela

No PHP temos alguns comandos capazes de imprimir alguma informação na tela, abaixo alguns deles, há alguns outros que podem ser encontrados no manual do PHP, encontrado neste link.

echo e print()

Ambos tem praticamente o mesmo comportamento, com uma diferença básica entre eles, o comando echo, sempre retorna um valor vazio (void), enquanto o comando print() sempre retorna o valor 1, o comando echo também é um pouco mais rápido que o comando print.

Na prática é mais comum o uso do comando echo.

Alguns exemplos:

<?php

echo 'Teste do echo com aspas simples\n';
echo "Teste do echo com aspas duplas\n";

print('Teste do print() com aspas simples\n');
print("Teste do print() com aspas duplas\n");

 

Para testarmos este arquivo, vamos salvá-lo dentro do diretório projetos do nosso ambiente de desenvolvimento (caso não tenha acompanhado os posts anteriores, este é o diretório que criamos para salvar nosso projetos da série de tutorias, neste caso o diretório raiz do apache).

Observamos dois testes diferentes, um com aspas duplas e outro com aspas simples, qual a diferença?

Comandos echo ou print usando aspas duplas permitem a interpretação de caracteres da tabela ascii e inclusão de variáveis sem a necessidade de concatenar os conteúdos, no exemplo acima vimos no final de cada linha “\n”, isso é uma quebra de linha, executando no terminal conseguiremos notar a diferença entre um e outro.

var_dump e print_r

O comando print_r imprime informações sobre uma variável de forma que esta fique legível, ao passo que var_dump imprime a informação detalhada, incluindo tipo de dado desta variável.

Exemplo:

<?php
$valores = array('Teste', 5, false, 4.5);

print_r($valores);

var_dump($valores);

 

As saídas acima devem exibir na tela algo semelhante a isso:

print_r

Array (
    [0] => ‘Teste’
    [1] => 5
    [2] =>
    [3] => 4.5
)

 

var_dump

array(4) {
    [0] => string(5) ‘Teste’
    [1] => int(5)
    [2] => bool( false)
    [3] => double(4.5)
}

 

Como podemos observar, a saída do comando var_dump() é mais detalhada, muito utilizada para depurar trechos de código com comportamento inesperado.

Padrões de arquivo

Para finalizar, temos uma padronização nos arquivos PHP a qual podemos seguir para melhorar a qualidade do nosso código, aqui cito os padrões para arquivos, no decorrer dos posts falaremos sobre os demais, os pontos que falam sobre arquivos da padronização são os seguintes:

  • Arquivos devem usar somente as tags longas (convencionais do php) e short-echo, ou seja, um arquivo PHP deve utilizar somente as tags <?php ?> e <?= ?>
  • Os arquivos deve utilizar a codificação UTF-8 somente sem BOM, isso evita erros de sessão e incompatibilidade com dados vindos de formulários web e banco de dados.
    Mais sobre BOM: https://pt.wikipedia.org/wiki/Marca_de_ordem_de_byte
  • Um arquivo PHP somente deveria declarar novos símbolos (classes, funções etc) ou gerar efeitos colaterais, gerar saída, fazer includes etc, nunca os dois simultaneamente.

Mais padrões do PHP podem ser encontrados na documentação do PSR, encontrada neste link.

Isso encerra nossa introdução a linguagem, nestes post vimos as formas que um script pode ser executado, escrevemos um Hello World bem simples, e vimos as primeiras recomendações de padronização, para possibilitar a escrita de um código com uma qualidade maior.

Espero que o post tenha sido útil, se sim compartilhe, pode ser interessante para mais alguém.

Até o próximo!

Sobre Rodrigo Teixeira Andreotti

Técnico em Informática formado pela ETEC Lauro Gomes Analista de Sistemas Pela universidade Metodista. Impacta Certified Specialist - Linux Programador PHP desde 2007, atuando em diversos projetos de sistemas internos, migrações, desenvolvimento de API's e sites públicos tanto como freelancer quanto com contrato com empresas. Também atuante como administrador Linux, administrando dois servidores próprios com CentOS, além de prestar serviços de administração e manutenção em servidores para algumas empresas.



Tutorial PHP: Formas de execução e Hello World

Tutorial PHP: Formas de execução e Hello World

Neste post iremos abordar os primeiros aspectos de um script PHP, sua estrutura básica e escreveremos um Hello World bem básico, já aproveitando para conhecer os principais comandos de exibição de dados em tela, também veremos  as primeiras recomendações de padronização feitas pela documentação do PSR, o qual iremos nos basear durante os demais tutoriais.

Formas de execução dos Scripts

O PHP traz duas formas de execução distintas para seus scripts, pode ser utilizado como CLI (Command Line Interface), ou baseado em web, isso quer dizer que, basicamente, seus scripts podem ser rodados em uma janela terminal (prompt de comandos no Windows ou Shell em sistemas Unix Like), como tratando requisições http do lado servidor em uma aplicação WEB, na realidade sua utilização maior se dá da segunda forma, conseguimos encontrar diversos exemplos pela web a fora, visto que a maioria dos websites, e ferramentas livre, tais como Magento, WordPress, Moodle etc. são desenvolvidos em PHP.

Abaixo dois exemplos do que pode ser ser feito no modo CLI, sendo muito utilizado para rotinas de backup de banco de dados de servidores que não possuem backup automatizado.

Esta é uma interface básica criada no PHP, quem quiser ver o código fonte ele está no gist (endereço abaixo da imagem).

Tutorial PHP: Programa PHP terminal
Programa PHP terminal

Código-fonte: https://gist.github.com/RodriAndreotti/f3bcdff90335f993bb49

O vídeo a seguir mostra um joguinho bem legal feito em PHP com a biblioteca ncurses:

Estrutura básica

A estrutura básica de um script PHP contém a tag de abertura do próprio PHP juntamente aos comandos, isso é o suficiente para que o script seja executado pelo interpretador do PHP, veja abaixo:

<?php 
echo "Hello World"; 
?>

 

Este é um código básico que imprime na tela a mensagem “Hello World”.

Tags do PHP

Se observarmos, ele se inicia com a tag <?php, toda vez que um bloco de código PHP for utilizado este tag deve preceder o código, desde que ele tenha sido fechado, quando o código PHP for encerrado, e for utilizado algo de HTML, devemos encerrar o bloco com a tag de fechamento ?>.

O PHP pode usar as seguintes tags:

<?php ?> – Padrão do PHP e aceito em todos os servidores

<? ?>          – Funciona desde que a diretiva short_open_tags no php.ini esteja ativa

<% %>      – Funciona desde que a diretiva asp_tags no php.ini esteja ativa

No exemplo acima utilizamos o comando echo, este comando imprime alguma informação na tela, sua sintaxe básica é a do exemplo, podemos utilizar para ele aspas simples ou aspas duplas.

Quando for utilizado somente este comando dentro do bloco de código do PHP, o mesmo pode ser substituído por uma forma abreviada, conhecida como short-echo, por exemplo:

<?= "Hello World"; ?>

 

Para versões anteriores a 5.4.0 do PHP esta forma abreviada só funciona se a diretiva short_open_tags estiver ativada, em versões posteriores a 5.4.0 esta forma de trabalho é independente da diretiva short_open_tags.

Abaixo temos um exemplo de um bloco de comandos PHP dentro de um código HTML:

<!DOCTYPE html>
<html>
    <head>
        <title><?= $pageTitle; ?></title>
    </head>
    <body>
        <h1>Listagem de clientes</h1>
        <table>
            <thead>
                <tr>
                    <th>Nome</th>
                    <th>E-mail</th>
                </tr>
            </thead>
            <tbody>
                <?php
                // Qualquer rotina que traga os clientes do banco de dados
                foreach ($clientes as $cliente) {
                    echo '<tr>';
                    echo '<td>' . $cliente->getNome() . '</td>';
                    echo '<td>' . $cliente->getEmail() . '</td>';
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </body>
</html>

 

Por enquanto não nos preocuparemos com os comandos acima, simplesmente temos ali um exemplo de como o PHP se integra ao HTML.

Porém, observando o código, podemos ver o comando echo novamente para construir uma célula de uma tabela HTML, existem n formas de fazer isso, cada um prefere uma forma de trabalho.

Impressão em tela

No PHP temos alguns comandos capazes de imprimir alguma informação na tela, abaixo alguns deles, há alguns outros que podem ser encontrados no manual do PHP, encontrado neste link.

echo e print()

Ambos tem praticamente o mesmo comportamento, com uma diferença básica entre eles, o comando echo, sempre retorna um valor vazio (void), enquanto o comando print() sempre retorna o valor 1, o comando echo também é um pouco mais rápido que o comando print.

Na prática é mais comum o uso do comando echo.

Alguns exemplos:

<?php

echo 'Teste do echo com aspas simples\n';
echo "Teste do echo com aspas duplas\n";

print('Teste do print() com aspas simples\n');
print("Teste do print() com aspas duplas\n");

 

Para testarmos este arquivo, vamos salvá-lo dentro do diretório projetos do nosso ambiente de desenvolvimento (caso não tenha acompanhado os posts anteriores, este é o diretório que criamos para salvar nosso projetos da série de tutorias, neste caso o diretório raiz do apache).

Observamos dois testes diferentes, um com aspas duplas e outro com aspas simples, qual a diferença?

Comandos echo ou print usando aspas duplas permitem a interpretação de caracteres da tabela ascii e inclusão de variáveis sem a necessidade de concatenar os conteúdos, no exemplo acima vimos no final de cada linha “\n”, isso é uma quebra de linha, executando no terminal conseguiremos notar a diferença entre um e outro.

var_dump e print_r

O comando print_r imprime informações sobre uma variável de forma que esta fique legível, ao passo que var_dump imprime a informação detalhada, incluindo tipo de dado desta variável.

Exemplo:

<?php
$valores = array('Teste', 5, false, 4.5);

print_r($valores);

var_dump($valores);

 

As saídas acima devem exibir na tela algo semelhante a isso:

print_r

Array (
    [0] => ‘Teste’
    [1] => 5
    [2] =>
    [3] => 4.5
)

 

var_dump

array(4) {
    [0] => string(5) ‘Teste’
    [1] => int(5)
    [2] => bool( false)
    [3] => double(4.5)
}

 

Como podemos observar, a saída do comando var_dump() é mais detalhada, muito utilizada para depurar trechos de código com comportamento inesperado.

Padrões de arquivo

Para finalizar, temos uma padronização nos arquivos PHP a qual podemos seguir para melhorar a qualidade do nosso código, aqui cito os padrões para arquivos, no decorrer dos posts falaremos sobre os demais, os pontos que falam sobre arquivos da padronização são os seguintes:

  • Arquivos devem usar somente as tags longas (convencionais do php) e short-echo, ou seja, um arquivo PHP deve utilizar somente as tags <?php ?> e <?= ?>
  • Os arquivos deve utilizar a codificação UTF-8 somente sem BOM, isso evita erros de sessão e incompatibilidade com dados vindos de formulários web e banco de dados.
    Mais sobre BOM: https://pt.wikipedia.org/wiki/Marca_de_ordem_de_byte
  • Um arquivo PHP somente deveria declarar novos símbolos (classes, funções etc) ou gerar efeitos colaterais, gerar saída, fazer includes etc, nunca os dois simultaneamente.

Mais padrões do PHP podem ser encontrados na documentação do PSR, encontrada neste link.

Isso encerra nossa introdução a linguagem, nestes post vimos as formas que um script pode ser executado, escrevemos um Hello World bem simples, e vimos as primeiras recomendações de padronização, para possibilitar a escrita de um código com uma qualidade maior.

Espero que o post tenha sido útil, se sim compartilhe, pode ser interessante para mais alguém.

Até o próximo!

Sobre Rodrigo Teixeira Andreotti

Técnico em Informática formado pela ETEC Lauro Gomes Analista de Sistemas Pela universidade Metodista. Impacta Certified Specialist - Linux Programador PHP desde 2007, atuando em diversos projetos de sistemas internos, migrações, desenvolvimento de API's e sites públicos tanto como freelancer quanto com contrato com empresas. Também atuante como administrador Linux, administrando dois servidores próprios com CentOS, além de prestar serviços de administração e manutenção em servidores para algumas empresas.