You can inject every repository of every installed extbase extension. Just add the dependency injection code to your controller. Depending on your TYPO3 version ist either:
TYPO3 >= 6.0:
/**
* @var \Vendor\Extension\Domain\Repository\SomeRepository
* @inject
*/
protected $someRepository;
Note that the @inject
Annotation does not perform very well in comparison to a dedicated inject method. So if you need to tweek the performance of your application and have many injections in yout controller you should consider switching to inject methods:
/**
* @var \Vendor\Extension\Domain\Repository\SomeRepository
*/
protected $someRepository;
/**
* @param \Vendor\Extension\Domain\Repository\SomeRepository
*/
public function injectSomeRepository(\Vendor\Extension\Domain\Repository\SomeRepository $someRepository) {
$this->someRepository = $someRepository;
}
TYPO3 = 4.7:
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
* @inject
*/
protected $someRepository;
TYPO3 < 4.7
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
*/
protected $someRepository;
/**
* Inject SomeRepository
* @param Tx_MyExtension_Domain_Repository_SomeRepository $someRepository
* @return void
*/
public function injectSomeRepository(Tx_MyExtension_Domain_Repository_SomeRepository $someRepository) {
$this->someRepository = $someRepository;
}
In any case you can use $this->someRepository
with all its methods in the controller you injected the repository into.
Edit: fixed typo.
Edit: After adding a Dependency Injection, you have to clear the cache!