2016-08-09 4 views
3

私のphoenixアプリケーションのフォルダ "lib"にモジュールを作成しました。コントローラからそれにアクセスするにはどうすればいいですか?最初にロードする必要がありますか?それともエイリアスですか?または、起動時に最初にロードし、エイリアスをロードしますか? devがミックスENVであるとmy_appアプリの名前であるあなたが_build/dev/lib/my_app/ebinmix compileを実行するたびどうすればphoenixの "/ lib"フォルダにあるモジュールにアクセスできますか?

+1

通常の方法で使用します: 'MyApp.MyModule.some_func()'、エイリアスまたはインポートすることができます。 – JustMichael

答えて

2

lib内のすべての.ex(ない.exs)ファイル内のすべてのモジュールは.beamファイルにコンパイルされています。すでにロードされていないモジュールで関数を呼び出そうとすると、Erlang VMはすべての "code load paths"(既に_build/dev/lib/my_app/ebinを含んでいます)に対応する.beamファイルを検索し、見つかった場合は関数を実行する前にロードします。見つからない場合は、モジュールが利用できないというエラーが表示されます。

だから、ロードする必要はありません。必要に応じて、関数を呼び出して、オプションで別名を呼び出してください。

関連する問題