1. \TYPO3\CMS\Extbase\Object\Container
2. \TYPO3\CMS\Extbase\Object\ObjectManager
1.1 getInstance ($className, $givenConstructorArguments=array())
1.2 registerImplementation ($className, $alternativeClassName)
1. get ($objectName)
2. create ($objectName)
Also:
In the global config file /Typo3/LocalConfiguration.php?
What I want is to preconfigure the DI Container singleton with the locations of all public classes. My extensions then ask the Container for an object by its name and they get the object back.
I read the question here
How do I include or autoload external libraries in a TYPO3 Extbase Extension? + Dependecy Injection?
However what I've noticed is that his classes register themselves in the DI Container (using Objectmanager.create)
Additionally I read here http://forge.typo3.org/projects/typo3v4-mvc/wiki/Dependency_Injection_%28DI%29 However I still cannot understand how to use the DI Container as a standalone service locator.
Do I perhaps add my dependencies to /ext/sysext/version/ext_autoload.php ? or /typo3conf/extTables.php
You can include or autoload external libraries in a TYPO3 Extbase Extension + Dependecy Injection
You can include external library within “ext_autoload.php”. You have to create ext_autoload files inside extension.
$extensionPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('rent_system');
return array(
'rent_system_TCPDF' => $extensionPath.'Resources/Private/PHP/tcpdf/tcpdf.php',
);
controller :
/**
* @var Tx_Extbase_Object_ObjectManagerInterface
*/
protected $objectManager;
/**
* @param Tx_Extbase_Object_ObjectManagerInterface $objectManager
*/
public function injectObjectManager(Tx_Extbase_Object_ObjectManagerInterface $objectManager) {
$this->objectManager = $objectManager;
}
$pdf = $this->objectManager->create('rent_system_TCPDF');