Phoenix framework
![Pagine da unire](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Mergefrom.svg/40px-Mergefrom.svg.png)
Phoenix framework software | |
---|---|
Genere | Framework per applicazioni web (non in lista) |
Sviluppatore | Chris McCord |
Ultima versione | 1.7.14 (18 giugno 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | elixir Elixir (non in lista) |
Licenza | MIT (licenza libera) |
Sito web | www.phoenixframework.org/ |
Modifica dati su Wikidata · Manuale |
Phoenix è un web framework scritto nel linguaggio di programmazione funzionale Elixir. Phoenix utilizza un modello MVC ( Model-View-Controller ) lato server .[1] Basato sulla libreria Plug e infine sul framework Cowboy Archiviato il 4 agosto 2020 in Internet Archive. Erlang, è stato sviluppato per fornire applicazioni Web altamente performanti e scalabili. Oltre alla funzionalità di request / response fornita dal server Cowboy sottostante[2], Phoenix fornisce una comunicazione soft in tempo reale ai client esterni tramite WebSocket o polling lungo utilizzando la sua funzione di canali indipendenti dalla lingua.[3]
Phoenix è arrivato alla versione 1.0 nell'agosto del 2015 [1].
Introduzione e funzionalità
Phoenix è nato da una collaborazione tra Jose Valim e Chris McCord, entrambi ex core contributor dei codici sorgenti di Ruby e Ruby on Rails.
Phoenix è un'applicazione che si basa sull'ecosistema Elixir, che gira sulla BEAM VM. Come Rails, Phoenix non ha un pannello di amministrazione, al contrario di Django, ma il suo punto di forza risiede in applicazioni soft realtime e l'utilizzo dei Websocket. Grazie alla BEAM VM e a Elixir, Phoenix è in grado di servire fino a 2.000.000 di connessioni Websocket contemporaneamente. Essendo Phoenix un progetto abbastanza recente, sfrutta già tecnologie viste in altri web framework, per citarne alcune :
- Astrazione del database relazionale sfruttando la libreria Ecto
- Possibilità di installare funzionalità attraverso librerie esterne scritte in Elixir o Erlang
- Robusta API per la gestione del database
- Sistema di "view generiche" che evitano la stesura di codice ripetitivo per determinati casi comuni.
- Gestore di URL basate su espressioni regolari
- Protezione CSRF e supporto per la sessione
- Supporto per localizzazione attraverso la libreria Gettext
- Inclusa documentazione accessibile attraverso Hex.pm
- Sistema per la creazione e la validazione di form HTML.
Come in Rails, Phoenix non viene fornito ad oggi con un sistema di autenticazione dell'utente, ma possono essere sfruttatate librerie come Pow. È in discussione l'implementazione di una libreria nativa per l'autenticazione.
Con la versione 1.5 è stata pubblicata Phoenix LiveView, una tecnologia che permette di realizzare applicazioni soft-realtime lato server. Sfrutta un meccanismo di connessione costante al server attraverso i Websocket per renderizzare e aggiornare il contenuto lato client. A differenza di altri meccanismi di aggiornamento on-the-wire, Phoenix aggiorna il minimo indispensabile del contenuto HTML e non l'intera pagina o porzioni maggiori. Questo è reso possibile grazie al fatto che i template, in Phoenix, sono delle funzioni sotto forma di HTML e non file HTML come in altri sistemi.
Con la versione 1.6 verrà rilasciato con un sistema di autenticazione dell'utente.
Note
- ^ (EN) Paul Krill, Phoenix Web framework rises to 1.0 status, in JavaWorld. URL consultato l'8 maggio 2018.
- ^ Chris McCord, Tate, Bruce e Valim, José, Programming Phoenix, Pragmatic Bookshelf, 2016, p. 18, ISBN 9781680504361.
- ^ Sophie DeBenedetto, Copia archiviata, su timber.io. URL consultato il 26 febbraio 2019 (archiviato dall'url originale il 9 novembre 2020).
Voci correlate
- Elixir (linguaggio di programmazione)
Collegamenti esterni
- (EN) Sito ufficiale, su phoenixframework.org.
- Repository sorgenti di Phoenix framework, su github.com.
V · D · M | |
---|---|
C++ | CppCMS · Wt |
CLI | ASP.NET (Core · AJAX · Dynamic Data · MVC · Razor · Web Forms) · Blazor · DNN · BFC · MonoRail · OpenRasta · Umbraco · WebSharper |
ColdFusion | CFWheels · ColdBox Platform · ColdSpring · Fusebox · Model-Glue |
Common LISP | Caveman2 · CL-HTTP · Weblocks |
Haskell | Yesod · Snap |
Java | AppFuse · Flexive · Grails · GWT · ICEfaces · ItsNat · JavaServer Faces · JHipster · Jspx · JWt · OpenXava · Play · Remote Application Platform · RIFE · Seam · Sling · Spring · Stripes · Struts · Tapestry · Vaadin · Vert.x · WebWork · Wicket · WaveMaker · ZK |
JavaScript | Angular/AngularJS · Backbone.js · Chaplin.js · Closure · Dojo Toolkit · Ember.js · Express.js · Ext JS · jQuery · Knockout · Meteor · MooTools · Next.js · Node.js · OpenUI5 · Prototype · React · Rico · script.aculo.us · Sencha Touch · SproutCore · Svelte · Vue.js · Wakanda |
Perl | Catalyst · Dancer · Mason · Maypole · Mojolicious · WebGUI |
PHP | CakePHP · CodeIgniter · Drupal · Fat-Free · FuelPHP · Flow · Grav · Gyroscope · Horde · Joomla! · Kohana · Laravel · Li3 · Midgard · MODX · Nette · Phalcon · PHP-Fusion · Pop PHP · PRADO · ProcessWire · Qcodo · Silex · SilverStripe · Symfony · TYPO3 · WordPress · XOOPS · Yii · Zend Framework |
Python | BlueBream · CherryPy · Django · Flask · Grok · Nevow · Pyjs · Pylons · Pyramid · Quixote · TACTIC · Tornado · TurboGears · web2py · Webware · Zope 2 |
Ruby | Camping · Merb · Padrino · Ruby on Rails · Sinatra |
Scala | Lift · Play · Scalatra |
Smalltalk | AIDA/Web · Seaside |
Altri | Vibe.d (D) · Application Express (PL/SQL) · Grails (Groovy) · Kepler (Lua) · OpenACS (Tcl) · Phoenix (Elixir) · Ash (Elixir) · SproutCore (JavaScript-Ruby) · Yaws (Erlang) |