Dependency Container: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(How to use)
(Services)
 
(Eine dazwischenliegende Version von einem Benutzer wird nicht angezeigt)
Zeile 38: Zeile 38:
  
 
<source lang="php">
 
<source lang="php">
 +
$GLOBALS['container']['myServiceParameter'] = 'value';
 +
</source>
 +
oder
 +
<source lang="php">
 +
global $container;
 
$container['myServiceParameter'] = 'value';
 
$container['myServiceParameter'] = 'value';
 
</source>
 
</source>
Zeile 44: Zeile 49:
  
 
<source lang="php">
 
<source lang="php">
 +
$GLOBALS['container']['myServiceName'] = function($container) {
 +
    $object = new MyClassName($container['myConstructorArgument']);
 +
    $object->myMethodName('myMethodArgument');
 +
    return $object;
 +
};
 +
</source>
 +
oder
 +
<source lang="php">
 +
global $container;
 
$container['myServiceName'] = function($container) {
 
$container['myServiceName'] = function($container) {
 
     $object = new MyClassName($container['myConstructorArgument']);
 
     $object = new MyClassName($container['myConstructorArgument']);

Aktuelle Version vom 16. Mai 2013, 22:42 Uhr

Erweiterungs-Übersicht
Name des Entwicklers Benutzer:tril
Entwickler Webseite http://bit3.de
Kompatibilität mit Contao Version ab 2.11
Link zum Extension Repository https://github.com/bit3/contao-dependency-container
Link zum Tracker https://github.com/bit3/contao-dependency-container/issues

Dependency Container für Contao

Ein Dependency Container ist Teil des Dependency Injection Konzepts. Deshalb bezeichnet man ihn auch als Dependency Injection Container oder kurz DI Container. Die Erweiterung heißt deshalb nur "Dependency Container", weil diese lediglich einen Container für Abhängigkeiten gemäß dem DI Konzept bereit stellt. DI umfasst neben Komponenten (wie den Container) auch Programmierparadigmen und API Definitionen und muss daher von jedem Entwickler selbst "angewendet" werden.

How to use

Technisch wird der Pimple Container verwendet.

Zugriff auf Werte im Container

$value = $GLOBALS['container']['foo.bar'];

oder

global $container;
$value = $container['foo.bar'];

Werte im Container definieren

Services werden in Modulen über die system/modules/X/config/services.php oder lokal über die system/config/services.php definiert.

Parameter

$GLOBALS['container']['myServiceParameter'] = 'value';

oder

global $container;
$container['myServiceParameter'] = 'value';

Services

$GLOBALS['container']['myServiceName'] = function($container) {
    $object = new MyClassName($container['myConstructorArgument']);
    $object->myMethodName('myMethodArgument');
    return $object;
};

oder

global $container;
$container['myServiceName'] = function($container) {
    $object = new MyClassName($container['myConstructorArgument']);
    $object->myMethodName('myMethodArgument');
    return $object;
};
Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich brauch nen Bier, es ist zwar noch nicht nach 4, aber es ist nach Oli.

Yanick Witschi
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge