PHPackages                             nurse/di - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nurse/di

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nurse/di
========

Dependency injection library

v3.0(8y ago)02.3k11MITPHPPHP &gt;=7.0

Since Jun 27Pushed 8y ago1 watchersCompare

[ Source](https://github.com/mjacobus/nurse)[ Packagist](https://packagist.org/packages/nurse/di)[ Docs](https://github.com/mjacobus/nurse)[ RSS](/packages/nurse-di/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (4)Versions (13)Used By (1)

Nurse
=====

[](#nurse)

Very simple Dependency Injection Container for PHP

Code information:

[![Build Status](https://camo.githubusercontent.com/3e3242004e2440d03f23a3e48d95187ed9c6f33f1cb397f7abfc2f7fdb739427/68747470733a2f2f7472617669732d63692e6f72672f6d6a61636f6275732f6e757273652e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/mjacobus/nurse)[![Coverage Status](https://camo.githubusercontent.com/3a94a6f9110b0428e7e0d255c075df10a288734be7e9b7662895d3e7f5842fb0/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6d6a61636f6275732f6e757273652f62616467652e706e673f6272616e63683d6d6173746572)](https://coveralls.io/r/mjacobus/nurse?branch=master)[![Code Coverage Scrutinizer](https://camo.githubusercontent.com/9daa1500560f8bad8f0e501f29c65e4796522a22d8168155b85269924af45f82/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6a61636f6275732f6e757273652f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mjacobus/nurse/?branch=master)[![Code Climate](https://camo.githubusercontent.com/c81a237c27f7a99d4d24a344ad86085d0f2611ad55e4522a8eb9048b7df28d43/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f6d6a61636f6275732f6e757273652e706e67)](https://codeclimate.com/github/mjacobus/nurse)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/caa93f2943b36b6a6ff9c7006ad8fb722bc4637656234f8881323f7559652693/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6a61636f6275732f6e757273652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/mjacobus/nurse/?branch=master)[![StyleCI](https://camo.githubusercontent.com/25bb88156b36d0257da7a7beba69a87e0f44d4bae420ffec203cfdc322335a45/68747470733a2f2f7374796c6563692e696f2f7265706f732f32313132353830352f736869656c64)](https://styleci.io/repos/21125805)

Package information:

[![Latest Stable Version](https://camo.githubusercontent.com/65b98913ffcb1f455d2d95c3aa3aa895c0e741580f7ad7813abddda302be02c0/68747470733a2f2f706f7365722e707567782e6f72672f6e757273652f64692f762f737461626c652e737667)](https://packagist.org/packages/nurse/di)[![Total Downloads](https://camo.githubusercontent.com/8c67c759a57a4906bb25ef7a15f7cd1febbe9361d9de2204d3bb1c0edc6f4183/68747470733a2f2f706f7365722e707567782e6f72672f6e757273652f64692f646f776e6c6f6164732e737667)](https://packagist.org/packages/nurse/di)[![Latest Unstable Version](https://camo.githubusercontent.com/8aa01f9a6069651e0fdab2efc2a0ad5a1b134b75177f8d86f20da5f867157ad0/68747470733a2f2f706f7365722e707567782e6f72672f6e757273652f64692f762f756e737461626c652e737667)](https://packagist.org/packages/nurse/di)[![License](https://camo.githubusercontent.com/beecd71d9049d0ce4591230cad7f7102e6c2fc27f4808d792766dd9d27a2cccd/68747470733a2f2f706f7365722e707567782e6f72672f6e757273652f64692f6c6963656e73652e737667)](https://packagist.org/packages/nurse/di)[![Dependency Status](https://camo.githubusercontent.com/e4c1e501f4b5883d12f723223591b013c66c7160836c76fbf7dd72f47fe08819/68747470733a2f2f67656d6e617369756d2e636f6d2f6d6a61636f6275732f6e757273652e706e67)](https://gemnasium.com/mjacobus/nurse)

Installing
----------

[](#installing)

### Installing via Composer

[](#installing-via-composer)

Append the lib to your requirements key in your composer.json.

```
{
    // composer.json
    // [..]
    require: {
        // append this line to your requirements
        "nurse/di": "dev-master"
    }
}
```

For PHP 5.3 and 5.4 support use version 0.9.2.

### Alternative install

[](#alternative-install)

- Learn [composer](https://getcomposer.org). You should not be looking for an alternative install. It is worth the time. Trust me ;-)
- Follow [this set of instructions](#installing-via-composer)

Issues/Features proposals
-------------------------

[](#issuesfeatures-proposals)

[Here](https://github.com/mjacobus/nurse/issues) is the issue tracker.

Usage
-----

[](#usage)

Defining a dependency:

```
$container = new Nurse\Container;

// Defining a dependency

$container->set('connection', function ($container) {
    $params = $container->get('connection_params');
    return new Connection($params);
})
->set('connection_params', function () {
    return array(
        'schema'   => 'someschema',
        'username' => 'root',
        'password' => 's3cr3t',
    );
});

// Retrieving the dependency (lazy loading)
$connection = $container->get('connection');

// alternatively you can use the singleton instance of the container

Nurse\Di::set('connection', function ($container) {
    $params = $container->get('connection_params');
    return new Connection($params);
})
->set('connection_params', function () {
    return array(
        'schema'   => 'someschema',
        'username' => 'root',
        'password' => 's3cr3t',
    );
});

$connection = Nurse\Di::get('connection');
```

You can also create factories:

```
