管理应用程序配置
Mix 任务运行在一个特定的环境之中. 预定义的环境为产品,开发和测试(prod, dev, 和test). 默认环境为 dev. 在本节中, 我们为每个环境的相同配置赋予不同的值. 并基于特定的配置, 在不同的环境中调用相同的函数输出不同的配置值.
要管理一个应用程序的配置, 我们按照下面的步骤:
1.创建一个新的应用
mix new config_example
2.进入生成的应用程序目录, 并打开 config/config.exs
.
3.用下面的代码, 替换文件的所有内容.
use Mix.Config
config :config_example,
message_one: "This is a shared message!"
import_config "#{Mix.env}.exs"
4.在 config
目录下创建三个额外的文件, 如下:
-
在
config/dev.exs
文件中添加:use Mix.Config config :config_example, message_one: "I'm a development environment message!" import_config "#{Mix.env}.exs"
-
在
config/prod.exs
文件中添加:use Mix.Config config :config_example, message_one: "I'm a production environment message!" import_config "#{Mix.env}.exs"
-
在
config/test.exs
文件中添加:use Mix.Config config :config_example, message_one: "I'm a test environment message!" import_config "#{Mix.env}.exs"
5.在 lib/config_example.ex
中定义两个模块熟悉保存 message_one
和 message_two
的值, 如下:
@message_one Application.get_env(:config_example, :message_one)
@message_two Application.get_env(:config_example, :message_two)
6.在 lib/config_example.ex
中创建一个show_messages
函数, 像这样:
def show_messages do
IO.puts "Message one is: #{#message_one}"
IO.puts "Message tow is: #{#message_two}"
end
7.在三个不同的环境中启动应用程序, 并且查看show_messages
函数的输出:
开发环境:
> MIX_ENV=dev iex -S mix
iex(1)> ConfigExample.show_messages
Message one is: This is a shared message!
Message tow is: I'm a developement environment message!
:ok
iex(2)>
产品环境:
> MIX_ENV=prod iex -S mix
iex(1)> ConfigExample.show_messages
Message one is: This is a shared message!
Message tow is: I'm a production environment message!
:ok
iex(2)>
测试环境:
> MIX_ENV=test iex -S mix
iex(1)> ConfigExample.show_messages
Message one is: This is a shared message!
Message tow is: I'm a test environment message!
:ok
iex(2)>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。