contao-community-alliance/dependency-container

Dependency container based on pimple for Contao open source cms.

1.8.0 2015-02-05 17:52 UTC

README

This DI Container based on Pimple.

Register parameters and services

system/modules/X/config/services.php

$container['myservice.param'] = 'value';
$container['myservice'] = function($container) {
    return new MyServiceClassName();
}

Access parameters and services

class MyClass
{
    function myFunction()
    {
        global $container;

        $parameter = $container['myservice.param'];
        $service = $container['myservice'];
    }
}

Build-in services

The config object

/** @var \Config $config */
$config = $container['config'];

The environment object

/** @var \Environment $environment */
$environment = $container['environment'];

The database connection

/** @var \Database $database */
$database = $container['database.connection'];

The input object

/** @var \Input $input */
$input = $container['input'];

The backend or frontend user, depend on TL_MODE

/** @var \BackendUser|\FrontendUser $user */
$user = $container['user'];

The session object

/** @var \Session $session */
$session = $container['session'];

Lazy access to the $objPage object

/** @var DependencyInjection\Container\PageProvider */
$pageProvider = $container['page-provider'];
$page         = $pageProvider->getPage();