* The Persistence Backend will now be injected via setter injection rather than via constructor injection. The Persistence Manager can be reached at any "place" via t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager') after its first initialization (in the Dispatcher).
$persistenceBackend->injectQOMFactory(t3lib_div::makeInstance('Tx_Extbase_Persistence_QOM_QueryObjectModelFactory', $storageBackend, $dataMapper));
$persistenceBackend->injectValueFactory(t3lib_div::makeInstance('Tx_Extbase_Persistence_ValueFactory'));
- $persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager', $persistenceBackend); // singleton
+ $persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton
+ $persistenceManager->injectBackend($persistenceBackend);
$persistenceManager->injectSession($persistenceSession);
$dispatchLoopCount = 0;
public function __construct() {
$this->objectManager = t3lib_div::makeInstance('Tx_Extbase_Object_Manager');
$this->arguments = t3lib_div::makeInstance('Tx_Extbase_MVC_Controller_Arguments');
- $this->arguments->injectPersistenceManager(t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'));
+ $this->arguments->injectPersistenceManager(t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager')); // singleton; must have been initialized before
$this->arguments->injectQueryFactory(t3lib_div::makeInstance('Tx_Extbase_Persistence_QueryFactory'));
list(, $this->extensionName) = explode('_', get_class($this));
}
protected $dataMapper;
/**
- * Constructor
+ * Injects the persistence backend
*
- * @param Tx_Extbase_Persistence_BackendInterface $backend the backend to use for persistence
+ * @param Tx_Extbase_Persistence_BackendInterface $backend The persistence backend
+ * @return void
* @internal
*/
- public function __construct(Tx_Extbase_Persistence_BackendInterface $backend) {
+ public function injectBackend(Tx_Extbase_Persistence_BackendInterface $backend) {
$this->backend = $backend;
}
-
/**
+ *
* Injects the persistence session
*
* @param Tx_Extbase_Persistence_Session $session The persistence session
* @return Tx_Extbase_Persistence_QueryInterface
*/
public function create($className) {
- $persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton; initialized in the dispatcher
+ $persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton; must have been initialized before
$dataMapper = t3lib_div::makeInstance('Tx_Extbase_Persistence_Mapper_DataMapper');
$dataMapper->injectIdentityMap($persistenceManager->getBackend()->getIdentityMap());
*/
public function __construct() {
$this->queryFactory = t3lib_div::makeInstance('Tx_Extbase_Persistence_QueryFactory');
- $this->persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton; must have been initialized before (constructor argument)
- // FIXME This does not work for itemProcFunc()
+ $this->persistenceManager = t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager'); // singleton; must have been initialized before
}
/**