やってみよう!Elixir / Phoenix 関数型プログラミングの基礎②

webアプリ開発
目次

WEBアプリを作成する

WEBアプリの骨格を生成し、サーバーとして起動して、デフォルトのPhoenixスタート画面をブラウザで表示するところまで進みます。

Phoenixアプリケーションジェネレーターのインストール

コンテナを起動して、コンテナの中に入ってください。

docker compose up -d

docker compose exec app bash

そして次のコマンドを実行してください。

mix archive.install hex phx_new 1.7.16 --force

これでmix phx.newコマンドが使えるようになります。このコマンドはPhoenixアプリケーションジェネレーターと呼ばれています。Phoenixアプリケーションのソースコードの骨格を生成するコマンドです。

mix phx.newコマンドの実行

次のコマンドを実行してください。

mix phx.new phx_sample

fetch and install dependencies? [Yn] という質問はYを選択してください。

ls -lコマンドでphx_sampleディレクトリができていることを確認してください。

ls -l

ソースコードの移動

以下のコマンドを順に実行して、phx_sampleの中身を作業ディレクトリに移動します。

mv -n phx_sample/* .

mv -n phx_sample/.* .

rm -rf phx_sample

サーバーの起動

それでは、作成されたphx_sampleのソースコードをvs codeを使ってみてみましょう。

config/dev.exsを書き換えます。

hostname: "localhost"を"db"に書き換えてください

続けて

http: [ip: {127, 0, 0, 1}, port: 4000],を
http: [ip: {0, 0, 0, 0}, port: 4000],にしてください

localhost:4000番でPhoenixのスタート画面が確認できます。

mix phx.serverの後にwaringがでるとkの対処法

mix phx.serverすると以下の内容が出ます。

warning: defining a Gettext backend by calling

    use Gettext, otp_app: ...

is deprecated. To define a backend, call:

    use Gettext.Backend, otp_app: :my_app

Then, instead of importing your backend, call this in your module:

    use Gettext, backend: MyApp.Gettext

  lib/phx_sample_web/gettext.ex:23: PhxSampleWeb.Gettext (module)

 

lib/phx_sample_web/components/core_components.ex の先頭に追加してください:

defmodule PhxSampleWeb.CoreComponents do
  use Phoenix.Component
  use Gettext, backend: PhxSampleWeb.Gettext
  ...
end

これで開発環境の構築はできました。