Italix è un’architettura modulare composta da una costellazione di librerie PHP complementari. Questi componenti sono progettati per integrarsi nativamente formando un framework completo, pur mantenendo la capacità di operare anche singolarmente. Ogni libreria assolve a una singola funzione specifica, dispone di una propria suite di test ed è distribuita autonomamente su GitHub e Packagist. Questo approccio architetturale consente di selezionare e includere nel progetto esclusivamente i pacchetti necessari, ottimizzando le risorse e l’impronta del codice.
Esplicito invece che magico. Ogni dipendenza di cui una classe ha bisogno è dichiarata in un metodo statico depends_on() — si legge dall’alto verso il basso come una lista della spesa, non viene risolta a runtime da un container che ispeziona il costruttore tramite reflection. Questa singola scelta è il motivo per cui il framework è veloce all’avvio e, altrettanto importante, veloce da leggere: per sapere “di cosa ha bisogno questa classe per funzionare” basta guardare un metodo, non seguire le regole di autowiring di un container.
Pensato per un codice leggibile e disciplinato. Ogni identificatore — variabili, funzioni, metodi, proprietà — è in snake_case, con un piccolo insieme di postfissi coerenti (_id, _dt, _n, _c…) che ti dicono che tipo di valore stai guardando ancora prima di aver letto la logica. La convenzione è imposta da un linter (libs:check), non è solo una linea guida, quindi si rimane sempre coerenti e sul pezzo.
Davvero leggero, il che significa davvero veloce. Pochi livelli tra una richiesta e il tuo codice, nessuna risoluzione di DI basata su reflection ad ogni avvio, nessuna astrazione ORM impilata su un’altra astrazione. Non è solo un vantaggio in velocità di esecuzione — è anche il motivo per cui l’intero codice resta leggibile man mano che cresce.
Pensato per come si scrive software oggi. Un codice piccolo, coerente e con poca magia non è solo più facile da tenere a mente per una persona — è anche molto più economico e veloce da usare insieme a un assistente AI per la programmazione. Meno boilerplate e nessun collegamento nascosto a runtime da decifrare significano che un AI pair-programmer spende i suoi token sul tuo problema reale, non per capire come funziona il framework — così le funzionalità arrivano prima e costano meno da sviluppare.
Include già tutto ciò di cui un’applicazione reale ha davvero bisogno
- Un framework di test completo e senza dipendenze (
italix/testing) — un client HTTP in-process, factory di righe derivate dallo schema, isolamento tramite rollback — così le suite di test non devono trascinarsi dietro PHPUnit solo per verificare che una route funzioni. - Tabelle e alberi di dati lato server già pronti (
italix/datasets) — basati su Tabulator, con colonne e azioni dichiarate in PHP. - Un livello completo per i form (
italix/forms) — costruisci un form HTML validato direttamente dallo schema di una tabella, senza markup scritto a mano. - Calendari e feed di eventi (
italix/calendars) — sorgenti dichiarate in PHP, un driver genera la configurazione lato client. - Un pattern CRUD a template-method (
BaseAdminAction) che ti dà un pannello admin funzionante — elenco, creazione, modifica, cancellazione, validazione — a partire da quattro metodi brevi, non una riscrittura per ogni risorsa.
Qualche altro vantaggio che vale la pena conoscere
- La sicurezza non è aggiunta in un secondo momento. La codifica dell’output è un tipo, non un’abitudine (
italix/encode) — un linter dei template individua l’output non codificato prima che vada in produzione. Le sessioni portano di default elenco dei dispositivi, revoca, rilevamento dei replay e ri-autenticazione step-up (italix/session). I file caricati vengono salvati tramite hash del contenuto, con il MIME rilevato e verificato su una whitelist, senza mai fidarsi del nome file fornito da chi chiama (italix/storage). - Validazione strutturata ad alta copertura. Il sistema fornisce il supporto nativo per numerosi formati che sono standard riconosciuti (come indirizzi email, recapiti telefonici, P.IVA, codici fiscali, IBAN, …). Qualora il dato in ingresso richieda una logica che esula dalle regole incluse nel repository attuale, il validatore emette un segnale esplicito, in modo che anche questa eventualità possa essere gestita programmaticamente.
- Internazionalizzazione vera, non semplici tabelle di stringhe: categorie plurali basate su ICU/CLDR, numeri, valute e date sensibili alla locale.
- Si integra bene con il resto dell’ecosistema PHP. PSR-15, PSR-11, PSR-16, PSR-7 ovunque — è un framework, non un giardino recintato: strumenti PHP standard e pacchetti conformi agli standard si inseriscono senza attriti.
























