在Erlang中,我可以使用define宏或.hrl文件将配置保存在一个地方.什么是Elixir最好的地方.
我找不到任何优雅的方式.现在我做的事情是: -
def get_server_name do
"TEST"
end
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
无论你使用函数还是宏最终都应该过多,但是如果你正在寻找的是"将它保存在一个地方"部分,我建议将它放在它自己的命名空间/模块中
defmodule MyApp.Configuration
def server_name do
"foo"
end
# or if you prefer having it all on one line
def host_name, do: "example.com"
# for complete equivalency, you can use a macro
defmacro other_config do
"some value"
end
end
Run Code Online (Sandbox Code Playgroud)
然后在你的应用程序中,你可以为模块添加别名,而不是包含文件,所以有一个简短的前缀来表示它的配置,并指出它们来自其他地方
defmodule MyApp.Server do
alias MyApp.Configuration, as: C
end
Run Code Online (Sandbox Code Playgroud)
或者如果你想直接使用这些名字
defmodule MyApp.Server do
import MyApp.Configuration
end
Run Code Online (Sandbox Code Playgroud)