Segunda, 11 de Dezembro de 2017




 Padronização de Página PHP

O Texto abaixo contém várias dicas visando implementar um modelo básico de Página PHP, que facilite a depuração e testes, além de obter um bom resultado do código.


Divisão em Blocos:

Uma página bem montada é dividida em blocos distintos, de forma que se pode encontrar um código dentro da mesma facilmente. Sugerimos aqui uma divisão básica:


Cabeçalho:

Normalmente iniciado com a tag de definição da linguagem, seguida pelos arquivos de include do tipo biblioteca (que podem ser incluídos no início do arquivo) e por um comentário que defina a página, como no exemplo abaixo:

<?php

include("includes/funcoes.php");
include("includes/funcoes_bd.php");

/********************************************************************
  Arquivo: modelo.php
  Versão: V1.0
  Data: Set/2011
  Origem: CJDinfo
  Função: Exemplificar uma página PHP
********************************************************************/


Definições de Constantes e Variáveis de Página:

Em seguida costuma-se definir as Constantes e as Variáveis que a página precisar.

Lembre-se que as variáveis definidas aqui existem durante a geração da página.

É aconselhável acrescentar comentários que defina para que serve cada item criado, bem como os valores que eles podem assumir, se for o caso. Isso facilitará muito as manutenções futuras. Segue o exemplo:

// =========================< CONSTANTES >============================

// Cores permitidas no Menu
define("cCorAzul", "#0000FF"); // Azul Forte
define("cCorVerde", "#66CCCC"); // Verde Claro
define("cCorGarrafa", "#006666"); // Verde Escuro


// ==========================< VARIÁVEIS >============================

// Carrega a Cor do Menu, conforme constantes acima:
$corMenu = cCorAzul;


Definições das Funções Locais:

No Bloco seguinte define-se as funções de uso local da página.

Note que a melhor prática é dividir o processamento em funções pequenas, com variáveis internas, ao invés de deixar o processamento todo esparramado na página, com variáveis globais.

Este tipo de variável deve ser utilizado somente para valores que devem ser vistos por todas funções e em toda a página. A idéia é semelhante a utilização de variáveis globais em programas de qualquer outra linguagem ou plataforma.

Cabe aqui ressaltar que, apesar de não ser necessário, é de bom uso definir as variáveis antes de usá-las em qualquer escopo (função ou global).

No exemplo abaixo a parte de execução na página (Principal) dispara apenas uma função que executa todo o processamento inicial:

// ===========================< ROTINAS >=============================

// -------------------------------------------------------------------
// Principal
//
// -------------------------------------------------------------------
    CarregaParametros();
// -------------------------------------------------------------------
// Carrega os parametros nas variáveis:
//
// -------------------------------------------------------------------
function CarregaParametros(){
    global $corMenu;

    $apl->abreBD(); // (Sub-rotina do include que abre conexão com BD)

    $corMenu = "";
    $s = "SELECT * FROM tbConfig";
    $rs = $apl->querySQL($s);
    while($lin = $rs->fetch_assoc()){
      $corMenu = trim($lin["CorMenu"]);
    }
    $rs->close();
}

// -------------------------------------------------------------------
// Carrega o Combo de Estados a partir do Banco de Dados:
//
// -------------------------------------------------------------------
function CargaCboEstado(){
    $s = "SELECT * FROM tbEstado";
    $rs = $apl->querySQL($s);
    while($lin = $rs->fetch_assoc()){
      $s = "<option value='" . $lin["Codigo"] . "'>" .
        trim($lin["Descricao"]) . "</option>";
      echo $s;
    }
    $rs->close();
}

?>


Bloco HTML:

Em seguida define-se o conteúdo HTML da página. Note que uma página HTML bem formada contém as TAGs HTML, HEAD, TITLE, /TITLE, /HEAD, BODY, FORM, INPUTs, /FORM, /BODY e /HTML, conforme o exemplo abaixo.

O melhor lugar para definir o Código SCRIPT da página é dentro das TAGs de HEAD e /HEAD. Claro que as execuções especiais deverão ser feitas em outros pontos da página, tal como o exemplo de limpeza de Radio Buttons na publicação de Radio e Check Button.

<HTML>
<HEAD>
<TITLE>Página Modelo</TITLE>
<SCRIPT Language="JavaScript" src="includes/funcoes.js">
<SCRIPT Language="JavaScript">
function SelClose(){
  window.close();
}
</SCRIPT>
</HEAD>

<BODY TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
 <FORM NAME="FORM">

  <INPUT TYPE="HIDDEN" NAME="Teste">

  <!-- Núcleo da Página . . . -->

 </FORM>
</BODY>
</HTML>


Núcleo da Página:

Para o Núcleo da página, que irá montar a parte visível da mesma, cabe alguns comentários:

Evite montar o código PHP misto com código HTML. Prefira colocar chamadas a funções ou subrotinas. Estas ficarão definidas na área específica (já citada) e conterão a formação do código desejado.

Isso evita que a página se torne uma imensa lista parte HTML, parte PHP, o que dificulta (e muito) a manutenção futura.

Use, no máximo, comandos IF para fazer apresentação condicional de código.

No exemplo abaixo podemos ver uma chamada de função de Carga de Combo a partir de Banco de Dados.

A função foi definida no bloco de Funções Locais, listado acima, usando uma Solução do nosso site.

Veja como o código fica leve. Imagine se todo o código PHP estivesse no meio.

    ( ... )

    <select name="cboEstado">
     <option value=""></option>
     <? CargaCboEstado(); ?>
    </select>

    ( ... )

Rodapé

Este é um item fundamental, principalmente se estiver trabalhando com Banco de Dados.

Coloque uma parte PHP chamando um função de fechamento da Conexão com o Banco de Dados.


¤ Links Relacionados:
- Consulta Paginada em PHP/MySQL


Gostou?   Compartilhe ou comente: