Skip to content

mbierlee/mirage-injector

Repository files navigation

Mirage Config injector for Poodinis

Version 2.0.0
Copyright 2022-2023 Mike Bierlee
Licensed under the terms of the MIT license - See LICENSE.txt

DUB Package CI

A config value injector for the Poodinis dependency injection framework using Mirage Config

Requires at least a D 2.097.2 compatible compiler

Getting started

DUB Dependency

See the DUB project page for instructions on how to include Mirage Config into your project.

Quickstart

import poodinis : DependencyContainer, Value;
import poodinis.valueinjector.mirage : loadConfig;

import std.stdio : writeln;
import std.conv : to;

class Server {
    @Value("server.host")
    private string host;

    @Value("server.port")
    private int port;

    public void run() {
        writeln("Running server on " ~ host ~ ":" ~ port.to!string);
    }
}

void main() {
    auto container = new shared DependencyContainer();
    container.register!Server;
    container.loadConfig("config.ini");

    auto server = container.resolve!Server;
    server.run();
}

Functions such as loadConfig are the same as available in Mirage. All individual loaders and parses are available. For more information on how to use Mirage, see https://github.com/mbierlee/mirage-config/blob/main/README.md

History

For a full overview of changes, see CHANGES.md