phoenix-framework Samouczek
Rozpoczęcie pracy z phoenix-framework
Szukaj…
Uwagi
Ta sekcja zawiera przegląd tego, czym jest framework feniks i dlaczego deweloper może chcieć go użyć.
Powinien również wymieniać wszelkie duże tematy w ramach feniksa i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja dla phoenix-framework jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Wersje
Wersja | Data wydania |
---|---|
0.1.1 | 01.05.2014 |
0.2.0 | 01.05.2014 |
0.2.1 | 01.05.2014 |
0.2.2 | 2014-06-05 |
0.2.3 | 2014-05-05 |
0.2.10 | 2014-05-22 |
0.2.11 | 30.06.2014 |
0.3.0 | 01.07.2014 |
0.3.1 | 2014-07-05 |
0.4.0 | 31.08.2014 |
0.4.1 | 2014-09-09 |
0,5.0 | 14.10.2014 |
0.6.0 | 22.11.2014 |
0.6.1 | 30.11.2014 |
0.6.2 | 08.12.2014 |
0.7.0 | 2014-12-10 |
0.7.1 | 2014-12-10 |
0.7.2 | 2014-12-11 |
0.8.0 | 11.01.2015 |
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 | 30.06.2015 |
0.15.0 | 2015-07-27 |
0.16.0 | 2015-08-06 |
0.16.1 | 2015-08-06 |
0.17.1 | 27.08.2015 |
1.0.0 | 28.08.2015 |
1.0.1 | 2015-09-03 |
1.0.2 | 07.09.2015 |
1.0.3 | 2015-09-29 |
1.0.4 | 2015-12-15 |
1.1.0 | 16.09.2015 |
1.1.1 | 27.09.2015 |
1.1.2 | 01.01.2016 |
1.1.3 | 2016-01-20 |
v1.2.0-rc.0 | 29.04.2016 |
v1.2.0-rc.1 | 2016-05-25 |
1.2.0 | 23.06.2016 |
1.2.2 | 14.03.2017 |
1.2.3 | 15.03.2017 |
1.2.4 | 2017-05-16 |
1.3.0-rc.1 | 15.03.2017 |
1.3.0-rc.2 | 2017-05-16 |
Instalacja
Framework Phoenix jest napisany w Elixir , a sam Elixir jest oparty na języku Erlang i wykorzystuje maszynę wirtualną Erlang, znaną z uruchamiania systemów o niskim opóźnieniu, rozproszonych i odpornych na uszkodzenia. Oba języki są wymagane do korzystania z frameworka Phoenix. Następujący krok, aby zainstalować framework Phoenix:
1. Zainstaluj Elixir na swoim komputerze. Zobacz Instalacja eliksiru i sposób instalacji przewodnika Elixir .
2. Zainstaluj menedżera pakietów Hex . Hex jest niezbędnym narzędziem do uruchomienia aplikacji Phoenix i zainstalowania wszelkich dodatkowych zależności, które mogą być potrzebne po drodze. W oknie sterowania terminalu lub polecenia wpisz:
$ mix local.hex
To polecenie zainstaluje lub zaktualizuje Hex, jeśli już je masz.
3. Zainstaluj Erlang na swoim komputerze. Bez Erlanga kod Elixir nie będzie się kompilował, ponieważ Elixir używa maszyny wirtualnej Erlanga do kompilacji kodu. Podczas instalacji Elixir prawdopodobnie również zainstalowałeś Erlang, ale jeśli tak nie jest, postępuj zgodnie z instrukcjami w przewodniku Elixir, aby zainstalować Erlang. Jeśli jednak masz system oparty na Debianie, może być konieczne jawne zainstalowanie Erlanga.
$ 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. Zainstaluj framework Phoenix na swoim komputerze. Gdy mamy już Elixir i Erlang, jesteśmy gotowi do zainstalowania archiwum Phoenix Mix. Archiwum Mix to plik Zip, który zawiera aplikację oraz skompilowane pliki BEAM. Jest on powiązany z określoną wersją aplikacji. Archiwum posłuży nam do wygenerowania nowej, podstawowej aplikacji Phoenix, z której możemy zbudować. Oto polecenie instalacji archiwum Phoenix:
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Możesz pobrać pakiety ręcznie, jeśli powyższe polecenie nie działa poprawnie dla Ciebie. Pobierz pakiety do archiwum Phoenix systemu plików i uruchom następujące polecenie
mix archive.install /path/to/local/phoenix_new.ez
5 Plug, Cowboy i Ecto są komponentami frameworka Phoenix, zostaną one zainstalowane automatycznie przez mix, jeśli pozwolisz mixowi zainstalować jego zależności, kiedy po raz pierwszy utworzysz projekty Phoenix. Ponadto, jeśli nie zezwolisz mikserowi na pobieranie tych składników, wówczas miks powie ci, jak to zrobić później.
6. Zainstaluj Node.js (nie mniej niż v.0.0.0) na swoim komputerze. Jest to zależność opcjonalna . Node.js jest wymagany do zainstalowania zależności brunch.io . Brunch.io jest domyślnie używany przez Phoenix do kompilacji zasobów statycznych (javascript, css itp.).
Możemy pobrać node.js ze strony pobierania . Wybierając pakiet do pobrania, należy pamiętać, że Phoenix wymaga wersji 5.0.0 lub nowszej.
Użytkownicy systemu Mac OS X mogą również zainstalować node.js za pośrednictwem homebrew .
Uwaga: io.js, która jest platformą kompatybilną z npm pierwotnie opartą na Node.js, nie jest znana z pracy z Phoenix.
Użytkownicy Debiana / Ubuntu mogą zobaczyć błąd, który wygląda następująco:
sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
Wynika to z faktu, że Debian ma sprzeczne pliki binarne dla węzła: patrz dyskusja na następujące pytanie SO
Nie można zainstalować pakietów za pomocą menedżera pakietów węzłów w Ubuntu
Istnieją dwie opcje rozwiązania tego problemu:
zainstaluj nodejs-legacy:
$ apt-get install nodejs-legacy
lub utwórz dowiązanie symboliczne
$ ln -s /usr/bin/nodejs /usr/bin/node
7 Zainstaluj bazę danych ( PostgreSQL ) na swoim komputerze. Phoenix konfiguruje aplikacje, aby domyślnie z niego korzystały, ale możemy przełączyć się na MySQL , przekazując flagę --database mysql
podczas tworzenia nowej aplikacji. Wiki PostgreSQL zawiera przewodniki po instalacji dla wielu różnych systemów.
Postgrex jest bezpośrednią zależnością Phoenix i zostanie wykorzystany do tworzenia modeli. Postgrex zostanie automatycznie zainstalowany wraz z resztą zależności podczas tworzenia i uruchamiania projektu Phoenix.
8 inotify-tools (dla użytkowników Linuksa) Jest to obserwator systemu plików tylko dla Linuksa, którego Phoenix używa do przeładowywania kodu na żywo. (Użytkownicy systemu Mac OS X lub Windows mogą go bezpiecznie zignorować).
Użytkownicy systemu Linux muszą zainstalować tę zależność. Instrukcje instalacji specyficzne dla dystrybucji znajdują się na stronie wiki inotify-tools .
Instalacja szkieletu
Czasami chcesz instalacji bez niczego oprócz minimalnej konfiguracji feniksa. Daje ci to następujące polecenie.
mix phoenix.new web --no-brunch --no-ecto
Uwaga: Musisz zainstalować Elixir, Erlang, Hex, Mix i archiwum Phoenix do instalacji szkieletu
Tworzenie projektu Phoenix
Do utworzenia pierwszego projektu w ramach Phoenix w tym momencie powinieneś mieć zainstalowane Elixir, Erlang, Hex i archiwum Phoenix. Powinieneś także zainstalować PostgreSQL i node.js, aby zbudować domyślną aplikację.
Otwórz terminal lub wiersz poleceń i przejdź do lokalizacji w systemie plików, w której chcesz utworzyć aplikację . phoenix.new
to polecenie mix, które utworzy dla ciebie nowy projekt. Zakładając, że nazwa naszej aplikacji to hello_phoenix_world
, a następnie wpisz
$ mix phoenix.new hello_phoenix_world
Alternatywnie możemy uruchomić mix phoenix.new z dowolnego katalogu, aby uruchomić naszą aplikację Phoenix. Phoenix zaakceptuje ścieżkę bezwzględną lub względną do katalogu naszego nowego projektu
$ mix phoenix.new /Users/username/work/elixir-projects/hello_phoenix_world
Wynik
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 wygeneruje strukturę katalogów dla twojego projektu i utworzy wszystkie pliki wymagane do aplikacji. Mix zapyta cię, czy chcesz zainstalować inne wymagane zależności . Powiedzmy tak na to.
Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
Po zainstalowaniu zależności zadanie wyświetli monit o przejście do katalogu projektu i uruchomienie aplikacji.
Move into your new project folder:
$cd hello_phoenix_world
Teraz musisz skonfigurować nazwę użytkownika i hasło postgres, chyba że jest już skonfigurowane z domyślnym useranme postgres i hasłem postgres. Edytuj plik config/dev.exs
i ustaw nazwę użytkownika i hasło:
# 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.
Teraz dodajmy witaj świat do aplikacji Phoenix. Otwórz plik web/templates/page/index.html.eex
, zamień zawartość na następujący i zapisz plik:
<h2>Hello World</h2>
Jeśli nie opuściłeś serwera, nowy kod zostanie automatycznie skompilowany, a Twoja przeglądarka powinna teraz wyświetlać komunikat „Hello World”.
Możesz teraz utworzyć zasób CRUD .
Na koniec, aby wyjść z serwera, naciśnij dwa razy z rzędu ctrl-c
crtl-c
(naciśnij jednocześnie control key
i klawisz c
).
Uruchamianie Elixir / Phoenix na OSX
Eliksir / Feniks
Najpierw zainstaluj Homebrew :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Następnie uruchomienie brew install elixir
zarówno Eliksir, jak i jego zależność - Erlang.
Zainstaluj mix z mix local.hex
.
Zainstaluj Phoenix zgodnie z instrukcjami:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Node.js
Możesz zainstalować swoje wersje Node.js i zarządzać nimi za pomocą NVM. Zainstaluj NVM z:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
Jeśli curl
nie jest dostępny, możesz go zainstalować za pomocą brew install curl
. Następnie uruchomić:
nvm install node
aby pobrać i skompilować najnowszą wersję Node.js.
Baza danych
Pobierz Postgres.app i uruchom go. Podczas tworzenia projektu Phoenix w pliku config/dev.exs
wystarczy podać nazwę bazy danych - w pozostałych przypadkach adapter użyje wartości domyślnych:
config :myphoenixapp, MyPhoenixApp.Repo,
adapter: Ecto.Adapters.Postgres,
database: "myphoenixapp_dev",
hostname: "localhost",
pool_size: 10
Generowanie zasobów dla modelu
Aby wygenerować schemat, widok, kontroler, plik migracji dla repozytorium, domyślne szablony CRUD i pliki testowe dla modelu (np. Rusztowania w Railsach), można użyć zadania mieszania phoenix.gen.html
następujący sposób:
mix phoenix.gen.html Book books title note:text pages:integer author_id:references:authors
Gdzie Book
to nazwa modułu, books
jest liczba mnoga wykorzystywane do schematu, a następnie przez pola zasobów: title
(string domyślnie), note
(pole tekstowe), pages
(całkowita), author_id
który tworzy belongs_to
skojarzenia z modelem autora.