phoenix-framework Tutorial
Iniziare con phoenix-framework
Ricerca…
Osservazioni
Questa sezione fornisce una panoramica di ciò che phoenix-framework è, e perché uno sviluppatore potrebbe voler usarlo.
Dovrebbe anche menzionare eventuali soggetti di grandi dimensioni all'interno di phoenix-framework e collegarsi agli argomenti correlati. Poiché la documentazione di phoenix-framework è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Versioni
Versione | Data di rilascio |
---|---|
0.1.1 | 2014-05-01 |
0.2.0 | 2014-05-01 |
0.2.1 | 2014-05-01 |
0.2.2 | 2014/06/05 |
0.2.3 | 2014/05/05 |
0.2.10 | 2014/05/22 |
0.2.11 | 2014/06/30 |
0.3.0 | 2014/07/01 |
0.3.1 | 2014/07/05 |
0.4.0 | 2014/08/31 |
0.4.1 | 2014/09/09 |
0.5.0 | 2014/10/14 |
0.6.0 | 2014/11/22 |
0.6.1 | 2014/11/30 |
0.6.2 | 2014/12/08 |
0.7.0 | 2014/12/10 |
0.7.1 | 2014/12/10 |
0.7.2 | 2014/12/11 |
0.8.0 | 2015/01/11 |
0.9.0 | 2015/02/12 |
0.10.0 | 2015/03/08 |
0.11.0 | 2015/04/08 |
0.12.0 | 2015/05/01 |
0.13.0 | 2015/11/15 |
0.13.1 | 2015/05/17 |
0.14.0 | 2015/06/30 |
0.15.0 | 2015/07/27 |
0.16.0 | 2015/08/06 |
0.16.1 | 2015/08/06 |
0.17.1 | 2015/08/27 |
1.0.0 | 2015/08/28 |
1.0.1 | 2015/09/03 |
1.0.2 | 2015/09/07 |
1.0.3 | 2015/09/29 |
1.0.4 | 2015/12/15 |
1.1.0 | 2015/09/16 |
1.1.1 | 2015/09/27 |
1.1.2 | 2016/01/09 |
1.1.3 | 2016/01/20 |
v1.2.0-rc.0 | 2016/04/29 |
v1.2.0-rc.1 | 2016/05/25 |
1.2.0 | 2016/06/23 |
1.2.2 | 2017/03/14 |
1.2.3 | 2017/03/15 |
1.2.4 | 2017/05/16 |
1.3.0-rc.1 | 2017/03/15 |
1.3.0-rc.2 | 2017/05/16 |
Installazione
Il framework Phoenix è scritto in Elixir e l'elisir stesso è basato sul linguaggio Erlang e sfrutta la VM Erlang, nota per l'esecuzione di sistemi a bassa latenza, distribuiti e fault-tolerant. Entrambe le lingue sono necessarie per l'utilizzo di framework phoenix. Seguendo il seguente passaggio per installare phoenix framework:
1. Installa Elixir sulla tua macchina. Vedi Installazione di elisir e come installare la guida di Elixir .
2. Installa il gestore di pacchetti Hex . Hex è uno strumento necessario per far funzionare un'app Phoenix e per installare eventuali dipendenze aggiuntive che potrebbero essere necessarie lungo il percorso. Dal terminale o dalla finestra di controllo comandi, digitare:
$ mix local.hex
Questo comando installerà o aggiornerà Hex, se già lo hai.
3. Installa Erlang sulla tua macchina. Senza Erlang, il codice Elixir non verrà compilato perché Elixir usa la VM di Erlang per la compilazione del codice. Quando installerai Elixir, probabilmente avrai installato anche Erlang, ma se non è così, segui queste istruzioni sulla guida di Elixir per installare Erlang. Tuttavia, se si dispone di un sistema basato su Debian, potrebbe essere necessario installare esplicitamente Erlang.
$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install esl-erlang
4. Installa phoenix framework sulla tua macchina. Una volta che abbiamo Elixir ed Erlang, siamo pronti per installare l'archivio di Phoenix Mix. Un archivio Mix è un file Zip che contiene un'applicazione e i file BEAM compilati. È legato a una versione specifica dell'applicazione. L'archivio è ciò che useremo per generare una nuova applicazione base Phoenix da cui possiamo costruire. Ecco il comando per installare l'archivio Phoenix:
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Puoi scaricare i pacchetti manualmente, se il comando precedente non funziona correttamente. Scarica i pacchetti nel tuo file system Archivi Phoenix ed esegui il seguente comando
mix archive.install /path/to/local/phoenix_new.ez
5 Plug, Cowboy ed Ecto sono componenti del framework Phoenix, verranno installati automaticamente da mix, se si consente a mix di installare le sue dipendenze, quando si creeranno per la prima volta i progetti Phoenix. Inoltre, se non permetti a mix di scaricare questi componenti, mix ti spiegherà come farlo in seguito.
6. Installa Node.js (non meno di v5.0.0) sul tuo computer. Questa è una dipendenza opzionale . Node.js è necessario per installare le dipendenze di brunch.io . Brunch.io è utilizzato da Phoenix per la compilazione di risorse statiche (javascript, css, ecc.), Per impostazione predefinita.
Possiamo ottenere node.js dalla pagina di download . Quando si seleziona un pacchetto da scaricare, è importante notare che Phoenix richiede la versione 5.0.0 o successiva.
Gli utenti Mac OS X possono anche installare node.js tramite homebrew .
Nota: io.js, che è una piattaforma compatibile con NPM originariamente basata su Node.js, non è nota per funzionare con Phoenix.
Gli utenti Debian / Ubuntu potrebbero vedere un errore simile a questo:
sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
Ciò è dovuto al fatto che Debian abbia binari in conflitto per il nodo: vedere la discussione sulla seguente domanda SO
Non è possibile installare pacchetti usando il gestore di pacchetti di nodi in Ubuntu
Esistono due opzioni per risolvere questo problema:
installa nodejs-legacy:
$ apt-get install nodejs-legacy
o creare un collegamento simbolico
$ ln -s /usr/bin/nodejs /usr/bin/node
7 Installa Database ( PostgreSQL ) sul tuo computer. Phoenix configura le applicazioni per usarle di default, ma possiamo passare a MySQL passando il flag --database mysql
durante la creazione di una nuova applicazione. Il wiki PostgreSQL ha guide di installazione per un certo numero di sistemi diversi.
Postgrex è una dipendenza diretta di Phoenix e verrà utilizzata per creare modelli. Postgrex verrà installato automaticamente insieme al resto delle dipendenze quando creerai e avvierai un progetto Phoenix.
8 strumenti inotify (per utenti Linux) Si tratta di un watcher per filesystem Linux-only che Phoenix usa per ricaricare il codice live. (Gli utenti Mac OS X o Windows possono tranquillamente ignorarlo).
Gli utenti Linux devono installare questa dipendenza. Consultare il wiki di inotify-tools per le istruzioni di installazione specifiche della distribuzione.
Installazione scheletrica
A volte si desidera un'installazione senza nulla tranne l'impostazione phoenix minima nuda. Il comando seguente ti darà questo.
mix phoenix.new web --no-brunch --no-ecto
Nota: è necessario aver installato Elixir, Erlang, Hex, Mix e l'archivio Phoenix per l'installazione di scheletro
Creare un progetto Phoenix
Per creare il tuo primo progetto nel framework Phoenix, a questo punto dovresti avere installato Elixir, Erlang, Hex e l'archivio Phoenix. Dovresti inoltre avere PostgreSQL e node.js installati per creare un'applicazione predefinita.
Aprire il terminale o il prompt dei comandi e accedere al percorso sul file system in cui si desidera creare l'applicazione . phoenix.new
è il comando mix che creerà un nuovo progetto per te. Supponendo che il nome della nostra applicazione sia hello_phoenix_world
, quindi digita
$ mix phoenix.new hello_phoenix_world
In alternativa , possiamo eseguire il mix phoenix.new da qualsiasi directory per avviare la nostra applicazione Phoenix. Phoenix accetterà un percorso assoluto o relativo per la directory del nostro nuovo progetto
$ mix phoenix.new /Users/username/work/elixir-projects/hello_phoenix_world
Produzione
mix phoenix.new hello_phoenix_world
* creating hello_phoenix_world/config/config.exs
* creating hello_phoenix_world/config/dev.exs
* creating hello_phoenix_world/config/prod.exs
...
* creating hello_phoenix_world/web/views/layout_view.ex
* creating hello_phoenix_world/web/views/page_view.ex
Fetch and install dependencies? [Yn]
Phoenix genererà la struttura di directory per il tuo progetto e creerà tutti i file necessari per l'applicazione. Mix ti chiederà se vuoi installare altre dipendenze richieste . Diciamo di sì.
Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
Una volta installate le dipendenze , l'attività richiederà di cambiare nella directory del progetto e avviare l'applicazione.
Move into your new project folder:
$cd hello_phoenix_world
Ora è necessario impostare il nome utente e la password postgres a meno che non sia già configurato con la password postgres e postgres postgres predefinita. Modifica il tuo file config/dev.exs
e imposta il nome utente e la password:
# config/dev.exs
config :hello_phoenix_world, HelloPhoenixWorld.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "hello_phoenix_world_dev",
hostname: "localhost",
pool_size: 10
Now, create the database with the ecto mix task:
$ mix ecto.create
We have a working application! Run your Phoenix application:
$ mix phoenix.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phoenix.server
Load `http://localhost:4000` into your browser and you will see the default landing page of your application.
Ora, aggiungiamo Hello World all'applicazione Phoenix. Apri il file web/templates/page/index.html.eex
e sostituisci il contenuto con quanto segue e salva il file:
<h2>Hello World</h2>
Se non si è usciti dal server, il nuovo codice verrà automaticamente compilato e il browser dovrebbe ora visualizzare il messaggio "Hello World".
Ora puoi creare una risorsa CRUD .
Infine, per uscire dal server, digitare ctrl-c
crtl-c
(premere il control key
e il tasto c
insieme) due volte di seguito.
Esecuzione di Elixir / Phoenix su OSX
Elisir / Phoenix
Installa Homebrew prima:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Quindi eseguendo brew install elixir
installerà sia Elixir che la sua dipendenza, Erlang.
Installa mix con mix local.hex
.
Installa Phoenix come da istruzioni:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Node.js
Puoi installare e gestire le tue versioni di Node.js con NVM. Installa nvm con:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
Se curl
non è disponibile, è possibile installarlo con brew install curl
. Quindi esegui:
nvm install node
per scaricare e compilare e l'ultima versione di Node.js.
Banca dati
Scarica Postgres.app ed eseguilo . Quando crei il tuo progetto Phoenix, nel tuo file config/dev.exs
, devi solo fornire un nome per il tuo database - l'adattatore userà i valori predefiniti per il resto:
config :myphoenixapp, MyPhoenixApp.Repo,
adapter: Ecto.Adapters.Postgres,
database: "myphoenixapp_dev",
hostname: "localhost",
pool_size: 10
Generazione di risorse per un modello
Per generare schema, vista, controller, file di migrazione per il repository, modelli CRUD predefiniti e file di test per un modello (come un ponteggio in Rails), è possibile utilizzare l'attività mix phoenix.gen.html
questo modo:
mix phoenix.gen.html Book books title note:text pages:integer author_id:references:authors
Dove Book
è il nome del modulo, i books
sono la forma plurale utilizzata per lo schema, seguita dai campi delle risorse: title
(stringa per impostazione predefinita), note
(campo di testo), pages
(numero intero), author_id
che crea un'associazione belongs_to
al modello Autore.