Come creare un sito PHP funzionale senza framework complessi

Creare un sito web in PHP non richiede necessariamente l’uso di framework avanzati come Laravel o Symfony. Anche se questi strumenti offrono funzionalità potenti, spesso rappresentano un eccesso per piccoli progetti, siti vetrina o applicazioni semplici. In molti casi, PHP “puro” è più che sufficiente per realizzare soluzioni snelle, veloci e facili da mantenere.

In questo articolo vedremo come creare un sito PHP funzionale da zero, senza dipendere da framework complessi, mantenendo però ordine, sicurezza e scalabilità.

1. Organizzare la struttura del progetto

Una buona struttura evita confusione e rende il progetto facile da estendere. Un esempio di organizzazione minimale:

/public
index.php
style.css
/app
templates/
includes/
controllers/
config.php
functions.php

Cosa contiene ogni cartella:

  • public/ → file accessibili dal browser (homepage, CSS, immagini…)

  • app/templates/ → file HTML separati dalla logica (header, footer, pagine)

  • app/controllers/ → logica per le varie pagine o sezioni

  • app/includes/ → parti di codice riutilizzabili

  • config.php → configurazioni generali e database

  • functions.php → funzioni globali del sito

2. Creare un router semplice (senza framework)

Invece di tanti file PHP sparsi nel server, è meglio utilizzare un unico punto di ingresso, come farebbe un framework moderno.

index.php

<?php
$page = $_GET['page'] ?? 'home';
switch ($page) {
case ‘home’:
require ‘../app/controllers/home.php’;
break;

case ‘contatti’:
require ‘../app/controllers/contatti.php’;
break;

default:
http_response_code(404);
require ‘../app/templates/404.php’;
}

In questo modo hai una struttura pulita, simile al routing dei framework, ma leggerissima.

3. Separare logica e grafica con template

Evita di mischiare HTML e PHP nella stessa pagina in modo disordinato.

Esempio di controller:

$title = "Homepage";
$content = "Benvenuto nel nostro sito!";
require '../app/templates/base.php';

Esempio di template base:

<!DOCTYPE html>
<html>
<head>
<title><?= htmlspecialchars($title) ?></title>
<link rel="stylesheet" href="/style.css">
</head>
<body>
<header>
<h1><?= htmlspecialchars($title) ?></h1>
</header>
<main>
<?= $content ?>
</main>
</body>
</html>

4. Gestire un database in modo sicuro

Per connetterti al database usa PDO, che offre protezione contro le SQL injection.

Connessione (config.php):

<?php
$pdo = new PDO("mysql:host=localhost;dbname=mysite;charset=utf8", "user", "password", [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

Query sicura:

$stmt = $pdo->prepare("SELECT * FROM articoli WHERE id = :id");
$stmt->execute(['id' => $id]);
$articolo = $stmt->fetch();

5. Funzioni utili da creare sempre

Puoi migliorare il tuo mini-framework personale creando piccole funzioni come:

  • redirect($url)

  • render($template, $data)

  • sanitize($string)

Esempio:

function render($template, $data = []) {
extract($data);
require "../app/templates/$template.php";
}

6. Aggiungere funzionalità senza framework

Con PHP puro puoi facilmente integrare:

  • Form di contatto

  • Autenticazione semplice

  • Pannellini admin personalizzati

  • Upload di file

  • Invio email (con PHPMailer, una semplice libreria non invasiva)

Senza framework, il controllo è totale e le performance eccellenti.

7. Quando PHP puro è la scelta migliore

Usa un approccio “no framework” quando:

✔ Il progetto è di piccole o medie dimensioni
✔ Vuoi controllo totale sul codice
✔ Preferisci performance elevate
✔ Non vuoi dipendere da tecnologie pesanti

Per applicazioni enterprise, API complesse o team numerosi è più conveniente un framework moderno, ma non è sempre necessario.

Conclusione

Creare un sito PHP funzionale senza framework complessi è assolutamente possibile — e spesso anche consigliabile. Con una buona organizzazione, qualche accorgimento per la sicurezza e un routing pulito, puoi ottenere un progetto robusto, veloce e facile da mantenere.