Documentation
Configuration Files
Configuration Files
Load and organize container definitions from YAML, JSON, JS, or XML files.
Loading a YAML config file:
import {ContainerBuilder, YamlFileLoader} from 'node-dependency-injection'
let container = new ContainerBuilder()
let loader = new YamlFileLoader(container)
await loader.load('/path/to/file.yml')
Loading a JSON config file:
import {ContainerBuilder, JsonFileLoader} from 'node-dependency-injection'
let container = new ContainerBuilder()
let loader = new JsonFileLoader(container)
await loader.load('/path/to/file.json')
Loading a JS config file:
import {ContainerBuilder, JsFileLoader} from 'node-dependency-injection'
let container = new ContainerBuilder()
let loader = new JsFileLoader(container)
await loader.load('/path/to/file.js')
Loading an XML config file:
import {ContainerBuilder, XmlFileLoader} from 'node-dependency-injection'
let container = new ContainerBuilder()
let loader = new XmlFileLoader(container)
await loader.load('/path/to/file.xml')
You can now set up the newsletter_manager and mailer services using config files:
YAML
services:
mailer:
class: ./Mailer
arguments: ['sendmail']
newsletter_manager:
class: ./NewsletterManager
arguments: ['%fs-extra']
calls:
- { method: 'setMailer', arguments: ['@mailer'] }
JSON
{
"services": {
"mailer": {
"class": "./Mailer",
"arguments": ["sendmail"]
},
"newsletter_manager": {
"class": "./NewsletterManager",
"arguments": ["%fs-extra"],
"calls": [
{
"method": "setMailer",
"arguments": ["@mailer"]
}
]
}
}
}
JS
module.exports = {
services: {
mailer: {class: "./Mailer", arguments: ["sendmail"]},
newsletter_manager: {
class: "./NewsletterManager",
arguments: ["%fs-extra"],
calls: [{ method: 'setMailer', arguments: ['@mailer'] }]
}
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<container>
<services>
<service id="mailer" class="./Mailer">
<argument>sendmail</argument>
</service>
<service id="newsletter_manager" class="./NewsletterManager">
<argument>%fs-extra</argument>
<call method="setMailer">
<argument>@mailer</argument>
</call>
</service>
</services>
</container>
