LoginSignup
8
4

More than 1 year has passed since last update.

phx.newのオプションの疑問点について答えてみます (Elixir/Phoenix)

Last updated at Posted at 2021-08-29

はじめに

  • Elixir楽しんでいますか:bangbang::bangbang::bangbang:
  • 本記事は2021/08/28(土)から開催中の純粋なもくもく会autoracex #43の成果です
  • @yamaneko717 さんの「Phoenixのwebsocket部分のみ使いたい」にあげられている疑問に回答してみようとおもいます
    • ちょうど最近、私自身が使ったオプションがありましたので、アウトプットしておこうとおもいます
  • もとの記事ではphx.newタスクのオプションについての疑問を挙げられています
  • mix help phx.newでオプションを確認できます
  • Phoenix v1.5.12

Phoenixのwebsocket部分のみ使いたい

  • こちらの記事で挙げられている疑問点にお答えしていきます

--umbrella 

どういうこと??よくわからん。一つのプロジェクト内に複数アプリ作るってことぉ??

--app

OTPアプリケーションって何?w
ググったらワンタイムパスワードとかでてきたけどw
だれか教えてください。

  • Open Telecom Platformの略です
  • Introduction to Mixには以下の説明がかいてあります
    • OTP (Open Telecom Platform) is a set of libraries that ships with Erlang. Erlang developers use OTP to build robust, fault-tolerant applications. In this chapter we will explore how many aspects from OTP integrate with Elixir, including supervision trees, event managers and more;
  • 参考: 16. OTPとは何か?

$ mix phx.new hoge --app fuga
  • のようにPhoenixプロジェクトをつくると、config/config.exs内のOTPアプリケーション名が:fugaになります
    • 逆に--app fugaを指定しない場合には、:hogeになります
  • lib/fuga.exlib/fuga_web.exが生成されていて、モジュール名がFugaFugaWebになっています
    • 逆に--app fugaを指定しない場合には、lib/hoge.exlib/hoge_web.exが生成されていて、モジュール名がHogeHogeWebになっています

--module

Google翻訳 -> 「生成されたスケルトンの基本モジュールの名前」
ちょっとなにいってるかわからない。

$ mix phx.new hoge --module Fuga
  • のようにPhoenixプロジェクトをつくると、lib/hoge.exlib/hoge_web.exのモジュール名がFugaFugaWebになっています
    • 逆に--module Fugaを指定しない場合には、HogeHogeWebになります

さらに例

  • 私は以下の場面で、--app--moduleを指定したことがあります
  • 手前味噌の「Phoenixの開発環境をつくる(Elixir)」にして環境構築した場合に、.devcontainerと同じ階層にPhoenixプロジェクトの関連フォルダやファイルを置きたかったのです
  • どういうことなのか説明を続けます
  • 初期状態はこんな感じです
/workspace
├── .devcontainer
│   ├── Dockerfile
│   ├── devcontainer.json
│   └── docker-compose.yml     
% pwd
workspace
% mix phx.new .
% mix phx.new . --module HacobunePhx --app hacobune_phx
  • こんな感じで実行することで以下のようなプロジェクトができあがりました
/workspace
├── .devcontainer
│   ├── Dockerfile
│   ├── devcontainer.json
│   └── docker-compose.yml 
├── README.md
├── assets
│   ├── css
├── config
│   ├── config.exs
│   ├── dev.exs
│   ├── prod.exs
│   ├── prod.secret.exs
│   └── test.exs
├── lib
│   ├── hacobune_phx
│   ├── hacobune_phx.ex
│   ├── hacobune_phx_web
│   └── hacobune_phx_web.ex
├── mix.exs
├── priv
└── test

--verbose

なにこれw
デバッグに使えるの?

Wrapping Up :lgtm::lgtm::lgtm::lgtm::lgtm:

  • Enjoy Elixir:bangbang::bangbang::bangbang:
  • mix phx.new . --module HacobunePhx --app hacobune_phxの話を書こう書こうとおもっていて書いていなかったので疑問に答える形で書くことができてよかったです :relaxed:
  • Elixirの純粋なもくもく会 autoracex #43 ただいま開催中:rocket::rocket::rocket:
8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4