contao-community-alliance/dependency-container

This package is abandoned and no longer maintained. No replacement package was suggested.

Dependency container based on pimple for Contao open source cms.

Package info

github.com/contao-community-alliance-archive/dependency-container

Homepage

Issues

Wiki

Type:contao-bundle

pkg:composer/contao-community-alliance/dependency-container

Statistics

Installs: 129 405

Dependents: 34

Suggesters: 0

Stars: 1

2.1.1 2022-09-05 20:13 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

LGPL-3.0-or-later 42af7c9bec78bb3584b1fedab37311f5b356939c

  • Christian Schiffler <c.schiffler.woop@cyberspectrum.de>
  • Stefan Heimes <stefan_heimes.woop@hotmail.com>

containerdependencydiinjectioncontaocca


README

👁 Version
👁 Build Status
👁 License
👁 Downloads

This DI Container based on Pimple.

NOTE on Contao 4: This is obsolete in Contao 4 - you should use the symfony container in Contao 4.

This extension keeps compatibility for easing migration to Contao 4 - however, you should change your code to register your services using both registration ways.

For a howto of how to migrate to Contao 4, please refer to the UPGRADING-TO-CONTAO4.md

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();