Elixir 1.7

Mix.Config




elixir

Mix.Config

एप्लिकेशन कॉन्फ़िगरेशन को परिभाषित करने, पढ़ने और विलय करने के लिए मॉड्यूल।

आमतौर पर, इस मॉड्यूल का उपयोग आपके स्वयं के कॉन्फ़िगरेशन को परिभाषित करने के लिए किया जाता है:

use Mix.Config

config :plug,
  key1: "value1",
  key2: "value2"

import_config "#{Mix.env}.exs"

सभी config/* मैक्रोज़, जिसमें import_config/1 , का उपयोग ऐसी कॉन्फ़िगरेशन फ़ाइलों को परिभाषित करने में मदद करने के लिए किया जाता है।

इसके अलावा, यह मॉड्यूल read!/1 , merge/2 और ऐसे मित्र प्रदान करता है जो सामान्य रूप से कॉन्फ़िगरेशन में हेरफेर करने में मदद करते हैं।

Mix.Config का उपयोग करके सेट किया गया कॉन्फ़िगरेशन अनुप्रयोग वातावरण सेट करेगा, ताकि Application.get_env/3 और अन्य Application फ़ंक्शंस का उपयोग रन पर किया जा सके या कॉन्फ़िगरेशन को पुनः प्राप्त करने या बदलने के लिए संकलन किया जा सके।

उदाहरण के लिए :key1 आवेदन से की :key1 मूल्य :plug (ऊपर उदाहरण देखें) को इसके साथ पुनर्प्राप्त किया जा सकता है:

"value1" = Application.fetch_env!(:plug, :key1)

सारांश

कार्य

कॉन्फिग (ऐप, ऑप्स)

दिए गए एप्लिकेशन को कॉन्फ़िगर करता है

कॉन्फिग (ऐप, की, ऑप्स)

दिए गए आवेदन के लिए दिए गए कुंजी को कॉन्फ़िगर करता है

eval! (फ़ाइल, import_paths \\ [])

दिए गए कॉन्फ़िगरेशन फ़ाइल का मूल्यांकन करता है

import_config/1

दी गई फ़ाइल या फ़ाइलों से कॉन्फ़िगरेशन कॉन्फ़िगर करता है

merge/2

दो कॉन्फ़िगरेशन जोड़ता है

persist(config)

कॉन्फ़िगर किए गए एप्लिकेशन वातावरण को संशोधित करके दिए गए कॉन्फ़िगरेशन को जारी रखता है

कार्य

कॉन्फिग (ऐप, ऑप्स)

दिए गए एप्लिकेशन को कॉन्फ़िगर करता है।

कीवर्ड सूचियाँ हमेशा गहरे मर्ज की जाती हैं।

उदाहरण

दिए गए opts को दिए गए app लिए मौजूदा कॉन्फ़िगरेशन में विलय कर दिया गया है। विरोधाभासी कुंजियाँ opts में निर्दिष्ट लोगों द्वारा ओवरराइड की जाती हैं। उदाहरण के लिए, नीचे घोषणा:

config :lager,
  log_level: :warn,
  mode: :truncate

config :lager,
  log_level: :info,
  threshold: 1024

का अंतिम विन्यास होगा:

[log_level: :info, mode: :truncate, threshold: 1024]

यह अंतिम कॉन्फ़िगरेशन रन या संकलन समय पर प्राप्त किया जा सकता है:

Application.get_all_env(:lager)

कॉन्फिग (ऐप, की, ऑप्स)

दिए गए आवेदन के लिए दिए गए कुंजी को कॉन्फ़िगर करता है।

कीवर्ड सूचियाँ हमेशा गहरे मर्ज की जाती हैं।

उदाहरण

दिए गए opts को दिए गए app में key लिए मौजूदा मानों में विलय कर दिया गया है। विरोधाभासी कुंजियाँ opts में निर्दिष्ट लोगों द्वारा ओवरराइड की जाती हैं। उदाहरण के लिए, नीचे दिए गए दो विन्यास दिए गए हैं:

config :ecto, Repo,
  log_level: :warn,
  adapter: Ecto.Adapters.Postgres

config :ecto, Repo,
  log_level: :info,
  pool_size: 10

Repo कुंजी के लिए कॉन्फ़िगरेशन का अंतिम मूल्य :ecto आवेदन होगा:

[log_level: :info, pool_size: 10, adapter: Ecto.Adapters.Postgres]

इस अंतिम मूल्य को रनटाइम पर प्राप्त किया जा सकता है या इसके साथ संकलित किया जा सकता है:

Application.get_env(:ecto, Repo)

eval! (फ़ाइल, import_paths \\ [])

दिए गए कॉन्फ़िगरेशन फ़ाइल का मूल्यांकन करता है।

यह import_paths की एक सूची को स्वीकार करता है, जिसे अगर फिर से आयात करने की कोशिश की जाती है (पुनरावर्ती आयात से बचने के लिए)।

यह कॉन्फ़िगरेशन और आयातित पथों के साथ एक टपल देता है।

import_config (path_or_wildcard) (मैक्रो)

दी गई फ़ाइल या फ़ाइलों से कॉन्फ़िगरेशन कॉन्फ़िगर करता है।

यदि path_or_wildcard एक वाइल्डकार्ड है, तो उस वाइल्डकार्ड से मेल खाती सभी फाइलें आयात की जाएंगी; यदि कोई फ़ाइल वाइल्डकार्ड से मेल नहीं खाती है, तो कोई त्रुटि नहीं उठाई जाती है। यदि path_or_wildcard वाइल्डकार्ड नहीं है, लेकिन एकल फ़ाइल का पथ है, तो वह फ़ाइल आयात की जाती है; यदि फ़ाइल मौजूद नहीं है, तो एक त्रुटि उठाई गई है।

यदि पथ / वाइल्डकार्ड एक सापेक्ष पथ / वाइल्डकार्ड है, तो इसे वर्तमान कॉन्फ़िगरेशन फ़ाइल में निर्देशिका में अपेक्षाकृत विस्तारित किया जाएगा।

उदाहरण

इसका उपयोग अक्सर वातावरण में कॉन्फ़िगरेशन का अनुकरण करने के लिए किया जाता है:

import_config "#{Mix.env}.exs"

या छाता परियोजनाओं में बच्चों से फाइलें आयात करने के लिए:

import_config "../apps/*/config/config.exs"

मर्ज (config1, config2)

दो कॉन्फ़िगरेशन जोड़ता है।

प्रत्येक एप्लिकेशन के कॉन्फ़िगरेशन को दूसरे में मानों के साथ विलय कर दिया जाता है, जिसमें संघर्ष के मामले में पहले की तुलना में उच्च वरीयता होती है।

उदाहरण

iex> Mix.Config.merge([app: [k: :v1]], [app: [k: :v2]])
[app: [k: :v2]]

iex> Mix.Config.merge([app1: []], [app2: []])
[app1: [], app2: []]

जारी रहती है (config)

कॉन्फ़िगर किए गए एप्लिकेशन वातावरण को संशोधित करके दिए गए कॉन्फ़िगरेशन को जारी रखता है।

{app, app_config} या %{app => app_config} मैप की एक सूची होनी चाहिए {app, app_config} जहाँ app कॉन्फ़िगर किए जाने वाले app हैं और app_config उन सभी ऐप्लिकेशंस में से-वैल्यू जोड़े (की-वैल्यू पेयर) हैं।

कॉन्फ़िगर किए गए एप्लिकेशन लौटाता है।

उदाहरण

Mix.Config.persist(logger: [level: :error], my_app: [my_config: 1])
#=> [:logger, :my_app]