phoenix-frameworkKomma igång med Phoenix-framework


Anmärkningar

Det här avsnittet ger en översikt över vad phoenix-framework är och varför en utvecklare kanske vill använda den.

Den bör också nämna alla stora ämnen inom Phoenix-ramverket och koppla till de relaterade ämnena. Eftersom Documentation for phoenix-framework är nytt kan du behöva skapa initialversioner av relaterade ämnen.

versioner

Version Utgivningsdatum
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

Skapa Phoenix-projekt

För att skapa ditt första projekt i Phoenix-ramverket på denna punkt bör du ha Elixir, Erlang, Hex och Phoenix-arkivet installerat. Du bör också ha PostgreSQL och node.js installerat för att bygga en standardapplikation.

Öppna terminal eller kommandotolk och gå till platsen i ditt filsystem där du vill skapa applikation . phoenix.new är phoenix.new som skapar ett nytt projekt för dig. Antagande att namnet på vår ansökan är hello_phoenix_world , skriv sedan

$ mix phoenix.new hello_phoenix_world
 

Alternativt kan vi köra mix phoenix.new från valfri katalog för att starta om vår Phoenix-applikation. Phoenix kommer att acceptera antingen en absolut eller relativ sökväg för katalogen för vårt nya projekt

$ mix phoenix.new /Users/username/work/elixir-projects/hello_phoenix_world
 

Produktion

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 kommer att generera katalogstrukturen för ditt projekt och det skapar alla filer som krävs för applikationen. Mix frågar dig om du vill att den ska installera andra nödvändiga beroenden . Låt oss säga ja till det.

Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
 

När beroenden har installerats uppmanas uppgiften att byta till vår projektkatalog och starta applikationen.

Move into your new project folder:

    $cd hello_phoenix_world
 

Du måste nu konfigurera postgres användarnamn och lösenord såvida det inte redan är inställt med standard postgres useranme och postgres lösenord. Redigera filen config/dev.exs och ange användarnamn och lösenord:

# 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.
 

Nu kan vi lägga till hejvärld till Phoenix-applikationen. Öppna filen web/templates/page/index.html.eex och ersätt innehållet med följande och spara filen:

<h2>Hello World</h2>
 

Om du inte har slutat servern kommer den nya koden automatiskt att sammanställas och din webbläsare ska nu visa ditt "Hello World" -meddelande.

Du kan nu skapa CRUD-resurs .

Slutligen, för att lämna servern, skriver du ctrl-c crtl-c (tryck på control key och c tangenten tillsammans) två gånger i rad.

Generera resurser för en modell

För att generera scheman, visa, controller, migreringsfil för förvaret, standard CRUD-mallar och testfiler för en modell (som ett byggnadsställning i Rails) kan man använda blandningsuppgift phoenix.gen.html :

mix phoenix.gen.html Book books title note:text pages:integer author_id:references:authors
 

Där Book är modulnamnet är books pluralform som används för schema följt av resursfält: title (sträng som standard), note (textfält), pages (heltal), author_id som skapar en belongs_to associering med författarmodellen.

Installation

Phoenix-ramverket är skriven i Elixir , och Elixir själv är baserat på Erlang- språket och utnyttjar Erlang VM, känd för att köra låg latens, distribuerade och feltoleranta system. Båda språken krävs för att använda Phoenix-ramverket. Följande steg för att installera Phoenix framework:

1. Installera Elixir på din maskin. Se Elixir Installation och hur du installerar Elixir guide .

2. Installera Hex- pakethanteraren. Hex är ett nödvändigt verktyg för att få en Phoenix-app igång och för att installera eventuella extra beroenden vi kan behöva på vägen. Skriv från ditt terminal- eller kommandokontrollfönster:

$ mix local.hex
 

Detta kommando installerar eller uppdaterar Hex, om du redan har.

3. Installera Erlang på din maskin. Utan Erlang kommer Elixir-kod inte att kompilera eftersom Elixir använder Erlangs VM för kodkompilering. När du installerar Elixir har du förmodligen installerat Erlang också, men om det inte är fallet, följ sedan instruktionerna i Elixir-guiden för att installera Erlang. Men om du har ett Debian-baserat system kan du behöva uttryckligen installera 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. Installera Phoenix-ramverket på din maskin. När vi har Elixir och Erlang är vi redo att installera Phoenix Mix-arkivet. Ett Mix-arkiv är en zip-fil som innehåller en applikation samt dess sammanställda BEAM-filer. Den är knuten till en specifik version av applikationen. Arkivet är vad vi kommer att använda för att generera en ny, baserad Phoenix-applikation som vi kan bygga från. Här är kommandot för att installera Phoenix-arkivet:

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
 

Du kan ladda ner paket manuellt, om kommandot ovan inte fungerar korrekt för dig. Ladda ner paket till ditt filsystem Phoenix arkiv och kör följande kommando

mix archive.install /path/to/local/phoenix_new.ez
 

5 Plug, Cowboy och Ecto är komponenter i Phoenix framework, de kommer att installeras automatiskt genom mix, om du låter mix installera dess beroenden, när du först skapar Phoenix-projekt. Om du inte tillåter mix att ladda ner dessa komponenter kommer mix att berätta hur du gör det senare.

6. Installera Node.js (inte mindre än v5.0.0) på din maskin. Detta är ett valfritt beroende. Node.js krävs för att installera brunch.io- beroenden. Brunch.io används av Phoenix för att sammanställa statiska tillgångar (javascript, css, etc), som standard.

Vi kan hämta node.js från nedladdningssidan . När du väljer ett paket att ladda ner är det viktigt att notera att Phoenix kräver version 5.0.0 eller senare.

Mac OS X-användare kan också installera node.js via homebrew .

Obs: io.js, som är en npm-kompatibel plattform som ursprungligen är baserad på Node.js, är inte känd för att fungera med Phoenix.

Debian / Ubuntu-användare kan se ett fel som ser ut så här:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
 

Detta beror på att Debian har motstridiga binärer för nod: se diskussion om följande SO-fråga

Det går inte att installera paket med node-pakethanteraren i Ubuntu

Det finns två alternativ att lösa problemet, antingen:

installera nodejs-legacy:

$ apt-get install nodejs-legacy
 

eller skapa en symlink

$ ln -s /usr/bin/nodejs /usr/bin/node
 

7 Installera databas ( PostgreSQL ) på din maskin. Phoenix konfigurerar applikationer för att använda det som standard, men vi kan byta till MySQL genom att skicka - --database mysql flaggan när --database mysql skapar en ny applikation. PostgreSQL wiki har installationsguider för ett antal olika system.

Postgrex är ett direkt Phoenixberoende och det kommer att användas för att skapa modeller. Postgrex installeras automatiskt tillsammans med resten av beroenden när du skapar och startar Phoenix-projektet.

8 inotify-verktyg (för linuxanvändare) Detta är en Linux-endast filsystemvaktare som Phoenix använder för att ladda om livekoder. (Mac OS X eller Windows-användare kan säkert ignorera det.)

Linux-användare måste installera detta beroende. Se wiki för inotify-tools för distributionsspecifika installationsinstruktioner.

Kör Elixir / Phoenix på OSX

Elixir / Phoenix

Installera Homebrew först:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 

Sedan kör brew install elixir installerar både Elixir och det är beroende - Erlang.

Installera mix med mix local.hex .

Installera Phoenix enligt anvisningarna:

mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
 

Node.js

Du kan installera och hantera dina Node.js-versioner med NVM. Installera nvm med:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
 

Om curl inte är tillgängligt kan du installera det med brew install curl . Kör sedan:

nvm install node
 

för att ladda ner och sammanställa och senaste versionen av Node.js.

Databas

Ladda ner Postgres.app och kör det. När du skapar ditt Phoenix-projekt, i filen config/dev.exs , behöver du bara ange ett namn för din databas - adaptern kommer att använda standardvärden för resten:

config :myphoenixapp, MyPhoenixApp.Repo,
  adapter: Ecto.Adapters.Postgres,
  database: "myphoenixapp_dev",
  hostname: "localhost",
  pool_size: 10
 

Skelettinstallation

Ibland vill du ha en installation utan någonting förutom den bara minsta Phoenix-inställningen. Följande kommando ger dig det.

mix phoenix.new web --no-brunch --no-ecto
 

Obs: Du måste ha installerat Elixir, Erlang, Hex, Mix och Phoenix-arkivet för skelettinstallation