phoenix-frameworkAan de slag met phoenix-framework


Opmerkingen

Deze sectie geeft een overzicht van wat phoenix-framework is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen Phoenix-raamwerk vermelden en een link naar de gerelateerde onderwerpen. Aangezien de Documentatie voor phoenix-framework nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Publicatiedatum
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

Phoenix-project maken

Voor het maken van uw eerste project in Phoenix-framework op dit punt moet u Elixir, Erlang, Hex en het Phoenix-archief hebben geïnstalleerd. U moet ook PostgreSQL en node.js hebben geïnstalleerd om een standaardtoepassing te bouwen.

Open de terminal of opdrachtprompt en ga naar de locatie op uw bestandssysteem waar u een toepassing wilt maken . phoenix.new is de phoenix.new die een nieuw project voor u zal maken. Ervan uitgaande dat de naam van onze applicatie hello_phoenix_world , typ dan

$ mix phoenix.new hello_phoenix_world
 

Als alternatief kunnen we mix phoenix.new vanuit elke map uitvoeren om onze Phoenix-applicatie op te starten. Phoenix accepteert een absoluut of relatief pad voor de map van ons nieuwe project

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

uitgang

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 genereert de mapstructuur voor uw project en maakt alle benodigde bestanden voor de toepassing. Mix zal je vragen of je andere vereiste afhankelijkheden wilt installeren . Laten we daar ja op zeggen.

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

Nadat de afhankelijkheden zijn geïnstalleerd , wordt u gevraagd om naar onze projectmap te gaan en de toepassing te starten.

Move into your new project folder:

    $cd hello_phoenix_world
 

U moet nu de gebruikersnaam en het wachtwoord van postgres instellen, tenzij dit al is ingesteld met het standaard gebruikersaccount en wachtwoord voor postgres. Bewerk uw config/dev.exs bestand en stel de gebruikersnaam en het wachtwoord in:

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

Laten we nu hallo wereld toevoegen aan de Phoenix-toepassing. Open het bestand web/templates/page/index.html.eex en vervang de inhoud door het volgende en sla het bestand op:

<h2>Hello World</h2>
 

Als u de server niet hebt verlaten, wordt de nieuwe code automatisch gecompileerd en moet uw browser nu uw bericht "Hallo wereld" weergeven.

U kunt nu CRUD-bronnen maken .

Als u ten slotte de server wilt verlaten, typt u tweemaal achter elkaar ctrl-c crtl-c (druk de control key en de c toets samen).

Bronnen voor een model genereren

Om schema, weergave, controller, migratiebestand voor de repository, standaard CRUD-sjablonen en testbestanden voor een model (zoals een steiger in Rails) te phoenix.gen.html kan men de phoenix.gen.html als volgt gebruiken:

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

Waar Book de modulenaam is, is books een meervoudsvorm die wordt gebruikt voor het schema, gevolgd door resourcevelden: title (standaard string), note (tekstveld), pages (geheel getal), author_id die een associatie belongs_to met het Author-model.

Installatie

Phoenix framework is geschreven in Elixir , en Elixir zelf is gebaseerd op de taal van Erlang en maakt gebruik van de Erlang VM, bekend voor het uitvoeren van gedistribueerde en fouttolerante systemen met lage latentie. Beide talen zijn vereist voor het gebruik van Phoenix Framework. De volgende stap om phoenix framework te installeren:

1. Installeer Elixir op uw machine. Zie Elixir Installatie en hoe Elixir gids te installeren .

2. Installeer Hex- pakketbeheerder. Hex is een noodzakelijk hulpmiddel om een Phoenix-app te laten werken en om eventuele extra afhankelijkheden die we onderweg nodig hebben te installeren. Typ vanuit uw terminal of opdrachtregelvenster:

$ mix local.hex
 

Met deze opdracht wordt Hex geïnstalleerd of bijgewerkt, als u dat al hebt gedaan.

3. Installeer Erlang op uw machine. Zonder Erlang zal Elixir-code niet compileren omdat Elixir de VM van Erlang gebruikt voor codecompilatie. Wanneer u Elixir installeert, hebt u waarschijnlijk ook Erlang geïnstalleerd, maar als dit niet het geval is, volg dan deze instructie op de Elixir-gids om Erlang te installeren. Als u echter een op Debian gebaseerd systeem hebt, moet u mogelijk Erlang expliciet installeren.

$ 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. Installeer phoenix framework op uw machine. Zodra we Elixir en Erlang hebben, zijn we klaar om het Phoenix Mix-archief te installeren. Een Mix-archief is een Zip-bestand dat een toepassing bevat en de gecompileerde BEAM-bestanden. Het is gekoppeld aan een specifieke versie van de applicatie. Het archief is wat we zullen gebruiken om een nieuwe, basis Phoenix-applicatie te genereren waaruit we kunnen bouwen. Hier is de opdracht om het Phoenix-archief te installeren:

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

U kunt pakketten handmatig downloaden, als bovenstaande opdracht niet correct voor u werkt. Download pakketten naar uw bestandssysteem Phoenix archieven en voer de volgende opdracht uit

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

5 Plug, Cowboy en Ecto zijn componenten van Phoenix framework, ze worden automatisch geïnstalleerd door mix, als je mix de afhankelijkheden laat installeren, wanneer je voor het eerst Phoenix-projecten maakt. Als u bovendien niet toestaat dat mix deze componenten downloadt, zal mix u later vertellen hoe u dit kunt doen.

6. Installeer Node.js (niet minder dan v5.0.0) op uw machine. Dit is een optionele afhankelijkheid. Node.js is vereist om brunch.io afhankelijkheden te installeren. Brunch.io wordt standaard door Phoenix gebruikt voor het compileren van statische activa (javascript, css, enz.).

We kunnen node.js krijgen van de downloadpagina . Bij het selecteren van een pakket om te downloaden, is het belangrijk op te merken dat Phoenix versie 5.0.0 of hoger vereist.

Mac OS X-gebruikers kunnen node.js ook installeren via homebrew .

Opmerking: het is niet bekend dat io.js, een npm-compatibel platform dat oorspronkelijk is gebaseerd op Node.js, werkt met Phoenix.

Debian / Ubuntu-gebruikers kunnen een fout zien die er zo uitziet:

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

Dit komt doordat Debian conflicterende binaire bestanden voor knoop heeft: zie de discussie over de volgende SO-vraag

Kan pakketten niet installeren met Node Package Manager in Ubuntu

Er zijn twee opties om dit probleem op te lossen:

installeer nodejs-legacy:

$ apt-get install nodejs-legacy
 

of maak een symlink

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

7 Installeer de database ( PostgreSQL ) op uw machine. Phoenix configureert applicaties om het standaard te gebruiken, maar we kunnen overschakelen naar MySQL door de vlag --database mysql door te geven bij het maken van een nieuwe applicatie. De PostgreSQL-wiki heeft installatiehandleidingen voor een aantal verschillende systemen.

Postgrex is een directe Phoenix-afhankelijkheid en het zal worden gebruikt om modellen te maken. Postgrex wordt automatisch geïnstalleerd samen met de andere afhankelijkheden wanneer u het Phoenix-project maakt en start.

8 inotify-tools (voor Linux-gebruikers) Dit is een alleen-Linux-bestandssysteem watcher die Phoenix gebruikt voor het live herladen van code. (Mac OS X- of Windows-gebruikers kunnen het veilig negeren.)

Linux-gebruikers moeten deze afhankelijkheid installeren. Raadpleeg de inotify-tools wiki voor distributie-specifieke installatie-instructies.

Elixir / Phoenix uitvoeren op OSX

Elixir / Phoenix

Installeer Homebrew eerst:

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

Vervolgens wordt met brew install elixir zowel Elixir als de afhankelijkheid ervan geïnstalleerd - Erlang.

Installeer mix met mix local.hex .

Installeer Phoenix volgens de instructies:

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

Node.js

U kunt uw Node.js-versies installeren en beheren met NVM. Installeer nvm met:

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

Als curl niet beschikbaar is, kunt u het installeren met brew install curl . Voer vervolgens uit:

nvm install node
 

om de nieuwste versie van Node.js. te downloaden en compileren

Database

Download Postgres.app en voer het uit. Wanneer u uw Phoenix-project maakt, in uw config/dev.exs bestand, hoeft u alleen maar een naam voor uw database op te geven - de adapter gebruikt de standaardwaarden voor de rest:

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

Skelet installatie

Soms wil je een installatie zonder iets anders dan de absolute minimale Phoenix-instelling. Het volgcommando zal je dat geven.

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

Opmerking: U moet Elixir, Erlang, Hex, Mix en het Phoenix-archief hebben geïnstalleerd voor skeletinstallatie