No PHP é possível construir e usar as próprias bibliotecas de funções e arquivos mais comumente usados. Esta prática ajuda significativamente na produtividade de um desenvolvedor.
Não demora muito para um programador iniciante perceber que, à medida em que avança em um projeto de software, muito do que está fazendo é repetitivo — conectar ao banco de dados, fornecer feedback do sistema aos usuários etc.
Neste texto, vou mostrar como tirar código referente a tarefas repetitivas em arquivos de bibliotecas, para ser compartilhado entre os vários módulos de um ou vários sistemas.
O encapsulamento ou modularização não é uma dica. Trata-se mais de uma técnica de programação que vale a pena incorporar ao seu dia a dia, o quanto antes.
A principal vantagem desta técnica é não precisar repetir código a cada novo programa que você criar.
Escreva uma vez, use várias.
Uma das funções mais usadas é a da conexão. Se um sistema precisa, em diversos momentos, se conectar a um banco de dados, basta escrever a rotina de conexão (com todas as informações de que ela precisa) uma vez só, dentro de uma função. A partir daí, toda vez que alguma parte do seu sistema precisar fazer uma conexão, usa o código que já está pronto.
É preciso pensar nisto o tempo todo, enquanto se está projetando um sistema ou, mesmo, digitando o código — como escrever o mínimo possível de código e reaproveitar o máximo.
Há outras vantagens em se adotar esta metodologia:
- Portabilidade facilitada — Você pode iniciar novos projetos, com as bibliotecas de funções que você sabe que foram exaustivamente testadas e que funcionam. Elas podem ser levadas a outro computador, pode ser disponibilizadas a outros desenvolvedores na rede etc.
Se você tem uma função que conecta a algum banco de dados, ela pode ser usada em outro sistema, com outro banco de dados. Para isto, basta alterar os parâmetros com que a função é chamada. A função, em si, permanece sempre a mesma. - Manutenção facilitada — Se, nesta mesma função, houver algum erro, basta corrigi-lo uma vez. Não há necessidade de corrigir o erro em cada módulo de programa que faz alguma conexão.
Se você tem interesse em aprender mais sobre metodologia de programação, sugiro ler sobre o MVC. Ao usar a caixa de busca, no topo do site, é possível também encontrar vários outros artigos sobre programação.
Como chamar funções e arquivos externos no PHP
Neste texto, vou me concentrar em mostrar como aplicar a metodologia de modularizar seus scripts em PHP. É simples e os exemplos podem ser adaptados a outras linguagens.
A linguagem PHP, provê a declaração include
que permite incluir código de um arquivo externo, em seu script, incorporando-o.
Este mecanismo torna a inclusão de bibliotecas mais natural.
Assim, você pode pôr várias pequenas funções importantes em um arquivo arquivo.php (ele pode ter qualquer outro nome ou extensão) e chamá-lo de qualquer script que possa vir a precisar das informações que lá estiverem contidas.
Basta incluir, em seu código PHP, o seguinte:
include "arquivo.php";
Todas as funções e variáveis que estiverem definidas e declaradas dentro do arquivo arquivo.php
, passam a poder ser usadas no script que o incluiu.
O conteúdo dos arquivos include PHP deve seguir as mesmas normas que qualquer outro arquivo PHP.
Alternativas a declaração include no PHP
Alternativamente e de acordo com suas necessidades, é possível usar outras formas de trazer informações externas.
Veja quais são:
A declaração require
, que quer dizer requeira ou requisite, em uma tradução livre, faz a leitura do arquivo externo mesmo que o contexto da execução não passe por onde ele se encontra dentro do código. Em outras palavras, ele carrega obrigatoriamente o código externo.
Exemplo:
require "functions.php";
Outra possibilidade é que o código externo já tenha sido lido e carregado, por alguma rotina no seu sistema e ele encontrar outro require ou include para carregar novamente o mesmo arquivo.
Para evitar que isto ocorra, use as variações include_once
e require_once
.
Estas duas verificam se o código externo já foi incluído ou requerido anteriormente — evitando, assim, redundâncias.
Referências: Wikipedia: encapsulamento ou modularização.