Dependency Container: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Tril (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{ExtInfo | Dev=Benutzer:tril | DevSite=http://bit3.de | Version=ab 2.11 | ERLink=https://github.com/bit3/contao-dependency-container | TrackerLink=http://dev…“) |
Tril (Diskussion | Beiträge) |
||
Zeile 4: | Zeile 4: | ||
| Version=ab 2.11 | | Version=ab 2.11 | ||
| ERLink=https://github.com/bit3/contao-dependency-container | | ERLink=https://github.com/bit3/contao-dependency-container | ||
− | | TrackerLink= | + | | TrackerLink=https://github.com/bit3/contao-dependency-container/issues |
}} | }} | ||
[[Kategorie:Extensions]] | [[Kategorie:Extensions]] | ||
Zeile 15: | Zeile 15: | ||
DI umfasst neben Komponenten (wie den Container) auch Programmierparadigmen und API Definitionen und muss daher von jedem Entwickler selbst "angewendet" werden. | DI umfasst neben Komponenten (wie den Container) auch Programmierparadigmen und API Definitionen und muss daher von jedem Entwickler selbst "angewendet" werden. | ||
− | == | + | ==How to use== |
− | + | ===Zugriff auf Werte im Container=== | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang="php"> | <source lang="php"> | ||
− | $GLOBALS['container'] | + | $value = $GLOBALS['container']['foo.bar']; |
</source> | </source> | ||
oder | oder | ||
<source lang="php"> | <source lang="php"> | ||
global $container; | global $container; | ||
− | $container | + | $value = $container['foo.bar']; |
</source> | </source> | ||
− | = | + | ===Werte im Container definieren=== |
− | + | Services werden in Modulen über die <code>system/modules/X/config/services.php</code> | |
− | + | oder lokal über die <code>system/config/services.php</code> definiert. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ====Parameter==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
<source lang="php"> | <source lang="php"> | ||
− | $container | + | $container['myServiceParameter'] = 'value'; |
</source> | </source> | ||
− | |||
− | + | ====Services==== | |
+ | |||
<source lang="php"> | <source lang="php"> | ||
− | $container | + | $container['myServiceName'] = function($container) { |
− | -> | + | $object = new MyClassName($container['myConstructorArgument']); |
+ | $object->myMethodName('myMethodArgument'); | ||
+ | return $object; | ||
+ | }; | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Version vom 16. Mai 2013, 20:36 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 |
Inhaltsverzeichnis
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
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
$container['myServiceParameter'] = 'value';
Services
$container['myServiceName'] = function($container) { $object = new MyClassName($container['myConstructorArgument']); $object->myMethodName('myMethodArgument'); return $object; };