Vai al contenuto

Software

TinyPHP: un framework leggero per applicazioni web e API

TinyPHP è una raccolta modulare di librerie PHP per realizzare siti web e API senza strutture obbligatorie. Routing, database, autenticazione e integrazioni in un unico progetto.

PHP Framework REST API Open Source Web

TinyPHP è una raccolta di librerie PHP per lo sviluppo di siti web, applicazioni e API REST. Include le funzioni che ricorrono più spesso in un progetto, senza imporre una particolare struttura del codice.

Logo TinyPHP

Il progetto nasce da un'esigenza pratica: evitare di riscrivere le stesse funzioni o copiarle da un'applicazione all'altra. Nel tempo queste librerie sono state raccolte in un unico progetto, con un'interfaccia comune e moduli attivabili secondo necessità.

Struttura base

TinyPHP non è un framework completo come Laravel o CakePHP. Non impone il pattern MVC, un'organizzazione delle cartelle o convenzioni sui nomi. Le librerie possono essere integrate in un progetto PHP esistente, mantenendo il controllo sulla sua struttura.

Il punto di ingresso è costituito da poche istruzioni:

require_once 'tinyphp/tinyphp.php';

TinyPHP::RegisterRoute('/', 'pages/home.php');
TinyPHP::RegisterRoute('/api/users/:id', 'api/user.php');
TinyPHP::Register404('pages/404.php');

TinyPHP::Run();

Il router associa gli indirizzi ai rispettivi script PHP. Supporta parametri dinamici negli URL, prefissi comuni e pagine per gli errori 404. Lo stesso meccanismo può servire pagine HTML o endpoint REST.

È disponibile anche una modalità manutenzione. Permette di mostrare una pagina temporanea, mantenendo accessibili determinati indirizzi, come endpoint di controllo o webhook.

Le funzionalità

Il framework comprende moduli dedicati alle operazioni più comuni nello sviluppo backend.

  • API HTTP: lettura dei parametri GET e POST, costruzione delle risposte e gestione dei codici di stato.
  • Database MySQL: esecuzione di query e recupero dei risultati, anche con parametri separati dal testo SQL.
  • Accesso e sicurezza: autenticazione tramite cookie o token X-Auth-Token, generazione di UUID e nonce, funzioni di sanitizzazione e supporto TOTP per i codici temporanei di autenticazione.
  • File e dati: upload e download, importazione ed esportazione CSV/Excel, gestione di date e importi.
  • Funzioni applicative: configurazione, log su file, traduzioni tramite dizionari JSON e integrazione con Google reCAPTCHA v3.

Le funzioni rimangono separate in moduli. Un piccolo sito non deve necessariamente caricare le stesse componenti di un'applicazione con autenticazione, database e pagamenti.

Integrazioni opzionali

Alcune funzionalità si appoggiano a librerie esterne. È il caso dell'invio di email tramite PHPMailer, della gestione dei fogli Excel con PhpSpreadsheet, dei pagamenti Stripe e della generazione di codici QR.

Questi moduli vengono abilitati soltanto quando servono. Per le funzioni di base non è richiesta l'installazione dell'intero insieme di dipendenze esterne.

TinyPHP include anche strumenti per comporre email con allegati e destinatari in copia, oltre a funzioni per gestire importi e date.

Ambito di utilizzo

TinyPHP è pensato soprattutto per progetti nei quali un framework completo introdurrebbe più struttura di quella necessaria: siti web, piccole applicazioni gestionali, servizi backend ed endpoint API.

Non cerca di sostituire i framework più articolati. L'obiettivo è ridurre il codice ripetitivo e lasciare al programmatore le scelte sull'architettura dell'applicazione.

Il progetto è distribuito con licenza MIT e richiede PHP 7.4 o successivo.

Codice sorgente e documentazione: TinyPHP su GitHub.