Italix Framework

Italix non è un framework monolitico che installi e dentro cui vivi — è una famiglia di librerie PHP indipendenti, ciascuna con uno scopo preciso, che insieme compongono un framework. Ognuna risolve esattamente un problema, viene pubblicata da sola su Packagist ed è testata da sola. Prendi solo ciò che ti serve; nulla arriva come peso morto.

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 non si degrada mai in silenzio.

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 onesta, non solo vero/falso. Il motore delle regole restituisce un vero e proprio terzo verdetto — sconosciuto — per i controlli che non può realmente confermare, invece di dichiarare in silenzio qualcosa come valido quando in realtà non lo ha mai verificato. Codici di errore macchina ovunque, non prosa da interpretare.
  • 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.
Icona Italix Libs

Italix Libs

Un framework PHP modulare, costituito da librerie Composer indipendenti e pubblicamente disponibili — scegli solo ciò che ti serve, dal routing all’ORM, dalla validazione all’i18n e ai test.

Icona Italix Contracts

Italix Contracts

Contratti condivisi (interfacce) per le librerie Italix — permette un’integrazione fluida tra italix/orm, italix/forms e le altre librerie compatibili.

Icona Italix Mvc

Italix Mvc

Motore PSR-15, pipeline di middleware, registro dei servizi, controller con dipendenze dichiarate, motore di viste con layout a blocchi, sessioni e traduzioni.

Icona Italix Orm

Italix Orm

Un ORM leggero e type-safe per PHP, con migrazioni, query builder e supporto per MySQL, PostgreSQL, SQLite e Supabase.

Icona Italix Routing

Italix Routing

Route con nome e generazione di URL: dichiara una route una sola volta, collegati ad essa per nome, e ottieni un errore esplicito in fase di generazione invece di un 404 più avanti.

Icona Italix Encode

Italix Encode

Codifica dell’output sensibile al contesto, come tipo: testo HTML, attributi, URL e JSON, con un linter dei template che individua output non codificato.

Icona Italix DataSets

Italix DataSets

Tabelle e alberi di dati lato server: definizioni di colonne e azioni in PHP, configurazione client generata da un driver, nomi di colonna in whitelist.

Icona Italix Forms

Italix Forms

Metadati dei form e rendering HTML: descrittori FormMeta/FieldMeta, widget e adapter che costruiscono un form a partire dallo schema di una tabella.

Icona Italix Rules

Italix Rules

Vocabolario ed esecutore di validazione: codici di errore macchina invece di prosa, e un terzo verdetto — sconosciuto — per i controlli che non può onestamente stabilire.

Icona Italix Auth

Italix Auth

Autenticazione con password con un ordine resistente ai leak, e policy di autorizzazione che possono astenersi dal decidere. Non include alcuna tabella né gestione delle sessioni.

Icona Italix Session

Italix Session

Sessioni come record su un soggetto e un tenant: elenco dei dispositivi, revoca per singolo account, rilevamento dei replay, ri-autenticazione step-up, limiti di concorrenza e store collegabili.

Icona Italix I18n

Italix I18n

Traduzione e formattazione basate su ICU: categorie plurali CLDR, numeri, valute e date sensibili alla locale, e un estrattore di chiavi che rifiuta di indovinare.

Icona Italix Testing

Italix Testing

Client HTTP PSR-15 in-process, factory di righe derivate dallo schema, isolamento tramite rollback e un test runner essenziale.

Icona Italix Console

Italix Console

Runner CLI del framework: comandi elencati, non scoperti automaticamente, dipendenze dichiarate come in un controller, container PSR-11, codici di uscita che hanno un significato.

Icona Italix Storage

Italix Storage

Storage di file in cui chi lo chiama non sceglie mai il nome del file: percorsi basati sull’hash del contenuto, estensione dedotta dal MIME rilevato tramite whitelist.

Icona Italix Documents

Italix Documents

Un albero di documenti versionato con nomi leggibili, proiettato su una directory reale che puoi modificare con qualsiasi strumento.

Icona Italix Media

Italix Media

Driver di conversione di formato per immagini, audio e video per italix/converters.

Icona Italix Converters

Italix Converters

Un contratto di conversione di formato a coppie e un registro di driver a percorso più breve — l’infrastruttura condivisa tra italix/documents e italix/media, di cui nessuno dei due è proprietario.

Icona Italix Crypto

Italix Crypto

Token firmati con scadenza, cifratura autenticata e rate limiting a finestra fissa, con rotazione delle chiavi integrata.

Icona Italix Cache

Italix Cache

Caching in stile PSR-16: un driver a file basato su opcache, un driver ad array, e un adapter su qualsiasi KeyValueStore di Contracts.

Icona Italix Events

Italix Events

Eventi con nome e listener dichiarati: stampabili, senza wildcard, senza cancellazione, e un listener che lancia un’eccezione non trascina con sé il dispatcher.

Icona Italix Jobs

Italix Jobs

Coda basata su database e scheduling cron: payload JSON invece di oggetti serializzati, presa in carico atomica, backoff, ripristino dei worker bloccati.

Icona Italix Mail

Italix Mail

Email transazionali che non possono fallire in silenzio: la riga di log viene scritta prima ancora di toccare il trasporto. SMTP incluso nel core, PHPMailer opzionale.

Icona Italix Calendars

Italix Calendars

Insiemi di calendari e feed di eventi: sorgenti dichiarate in PHP, configurazione client generata da un driver.