Phoenix (web framework)

Phoenix è un framework per applicazioni web scritto nel linguaggio di programmazione funzionale Elixir, basato sul paradigma model-view-controller (MVC) lato server. Si appoggia alla libreria Plug e, a un livello più basso, a un server web della piattaforma Erlang, storicamente Cowboy; è…

Phoenix è un framework per applicazioni web scritto nel linguaggio di programmazione funzionale Elixir, basato sul paradigma model-view-controller (MVC) lato server. Si appoggia alla libreria Plug e, a un livello più basso, a un server web della piattaforma Erlang, storicamente Cowboy; è progettato per applicazioni web ad alte prestazioni e scalabili.

Oltre al ciclo di richiesta e risposta gestito dal server sottostante, Phoenix consente la comunicazione in tempo reale con i client tramite WebSocket o long polling, attraverso i cosiddetti channels, utilizzabili da client scritti in qualsiasi linguaggio.

Storia

Phoenix è stato creato da Chris McCord, con il contributo di José Valim, creatore di Elixir ed ex membro del core team di Ruby on Rails. La versione 1.0 è stata pubblicata nell'agosto 2015.

Con la versione 1.5, del 2020, Phoenix ha integrato LiveView, una libreria per la realizzazione di interfacce interattive in tempo reale gestite lato server. LiveView mantiene una connessione persistente con il server tramite WebSocket per generare e aggiornare il contenuto visualizzato lato client: a ogni modifica il server invia soltanto le porzioni di HTML effettivamente cambiate, anziché l'intera pagina. Ciò è possibile perché in Phoenix i template sono compilati in funzioni Elixir, e non trattati come semplici file HTML.

Con la versione 1.6, del 2021, è stato introdotto un generatore di codice per il sistema di autenticazione degli utenti, in precedenza affidato a librerie esterne.

Caratteristiche

Phoenix si basa sull'ecosistema Elixir, eseguito sulla macchina virtuale BEAM di Erlang. Il suo punto di forza sono le applicazioni in tempo reale: in un test del 2015 gli sviluppatori hanno mantenuto due milioni di connessioni WebSocket simultanee su una singola macchina. Fra le altre funzionalità figurano:

l'accesso ai database relazionali tramite la libreria Ecto;

l'estensibilità attraverso librerie esterne in Elixir o Erlang, distribuite con il gestore di pacchetti Hex, che ospita anche la documentazione;

la protezione da attacchi CSRF e la gestione delle sessioni;

il supporto alla localizzazione tramite Gettext;

la creazione e la validazione di moduli HTML;

generatori di codice per le componenti più comuni di un'applicazione.

Servizi correlati

Altre voci

J

JavaScript Object Notation

JavaScript Object Notation (JSON ˈdʒeɪ·sən) è un formato per lo scambio dati basato sul linguaggio di programmazione JavaScript (ECMA-262).

Leggi la voce →
C

Collegamento ipertestuale

In informatica, un collegamento ipertestuale (in inglese hyperlink, comunemente abbreviato in link, usato anche in italiano) è un riferimento digitale, spesso testuale, che permette agli utenti di accedere a dati specifici cliccando su di esso con il mouse o toccandolo su un touchscreen. Può…

Leggi la voce →
I

Interprete JavaScript

Un interprete JavaScript è un software specializzato che esegue comandi JavaScript, utilizzato soprattutto dai browser.

Leggi la voce →
A

Accessibilità (design)

L'accessibilità è la caratteristica di un dispositivo, di un servizio, di una risorsa o di un ambiente d'essere fruibile con facilità da una qualsiasi tipologia d'utente. Il concetto di design accessibile e la pratica dello sviluppo accessibile garantiscono sia l'"accesso diretto" (cioè senza…

Leggi la voce →
Etichetta (informatica)E

Etichetta (informatica)

In informatica un'etichetta o label (in inglese) è un controllo grafico (widget) che mostra informazioni testuali all'interno di un form. È solitamente un controllo statico, che non prevede alcun tipo di interazione con l'utente, ed è usato per identificare (etichettare) un altro controllo…

Leggi la voce →
PhpBBP

PhpBB

phpBB è uno tra i più popolari sistemi liberi per la gestione di forum scritti mediante il linguaggio di programmazione PHP: il nome è un'abbreviazione di PHP Bulletin Board.

Leggi la voce →