include e require in PHP

Introduzione al problema

In molte applicazioni web, è comune che alcune parti di codice si ripetano in più pagine. Un esempio tipico è la navbar di un sito web, che deve essere mostrata su tutte le pagine del sito. Scrivere e mantenere manualmente questo codice in ogni pagina è inefficiente e porta a difficoltà nella manutenzione. L’utilizzo di include e require in PHP permette di risolvere questo problema in modo efficace.

Che cosa sono include e require?

include e require sono due istruzioni in PHP che consentono di inserire il contenuto di un file all’interno di un altro. La differenza principale tra i due è come gestiscono gli errori:

  • include: se il file non esiste o non può essere caricato, PHP emette un warning e continua l’esecuzione dello script.
  • require: se il file non esiste o non può essere caricato, PHP emette un errore fatale e interrompe l’esecuzione dello script.

Sintassi:

include 'file.php';
require 'file.php';

A cosa servono include e require?

Questi comandi sono usati per:

  • Modularizzare il codice: consentono di suddividere l’applicazione in file separati per rendere il codice più leggibile e facile da mantenere.
  • Riutilizzare il codice: evitano la duplicazione dello stesso blocco di codice in più file.
  • Migliorare la manutenzione: se è necessario modificare un componente (come una navbar), basta modificarlo in un solo file.

Implementare una soluzione per la navbar

Immaginiamo di dover utilizzare la stessa navbar in diverse pagine del nostro sito web. Possiamo creare un file separato per la navbar e includerlo in tutte le pagine dove è necessario.

Passaggi per implementare una navbar riutilizzabile:

  1. Creare un file navbar.php contenente il codice HTML della navbar.
  2. Utilizzare include o require per inserire navbar.php nelle altre pagine.

Esempio di navbar.php:

<!-- navbar.php -->
<nav>
    <ul>
        <li><a href="index.php">Home</a></li>
        <li><a href="about.php">About</a></li>
        <li><a href="contact.php">Contact</a></li>
    </ul>
</nav>

Includere la navbar in altre pagine:

<!-- index.php -->
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <?php include 'navbar.php'; ?>
    <h1>Benvenuto nella Home Page</h1>
</body>
</html>

Passare variabili tra i file

Le variabili dichiarate in uno script PHP rimangono disponibili anche nei file inclusi. Questo significa che puoi definire una variabile in uno script e usarla nei file inclusi.

Esempio: File config.php

<?php
// creo la variabile $siteTitle
$siteTitle = "Il mio sito web"; 
?>

File header.php

// utilizzo la variabile $siteTitle 
// (non esiste in questo file)
<?php echo "<h1>$siteTitle</h1>"; ?>

File index.php

// svolgo il codice di cofig.php
<?php include 'config.php'; ?>
// svolgo il codice di heade.php
<?php include 'header.php'; ?>

Strutturare correttamente i file per sfruttarli al meglio

Per mantenere una struttura pulita e modulare, è utile organizzare i file del progetto in cartelle. Ad esempio:

/progetto-sito
    /includes
        navbar.php
        footer.php
        config.php
    index.php
    about.php
    contact.php

Buone pratiche:

  • Usare include_once e require_once: per prevenire che lo stesso file venga incluso più volte, usa include_once o require_once.
  • Controllare l’esistenza del file: se lavori in un contesto critico, verifica che il file esista prima di includerlo.
  • Separare la logica dalla vista: mantieni il codice PHP e HTML separati per una migliore manutenibilità.

Esempio con include_once:

<?php include_once 'includes/navbar.php'; ?>