phoenix-framework Zelfstudie
Aan de slag met phoenix-framework
Zoeken…
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 |
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.
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
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).
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
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.