Hello,
I’m trying to implement a “Doctrine Filter System” as documentation (http://flowframework.readthedocs.org/en/latest/TheDefinitiveGuide/PartIII/Persistence.html#on-the-doctrine-filter-system)
I created the class and I put the setting in the file “Configuration”.
doctrine:
filters:
'SoftDeleteFilter': 'Xxxx\Intranet\Flow\Persistence\Doctrine\SoftDeleteFilter'
The class extends SQLFilter as a Doctrine doc (http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/filters.html)
I’m using TYPO3 Flow 2.3
This is my class:
namespace Xxxx\Intranet\Flow\Persistence\Doctrine;
use Doctrine\ORM\Mapping\ClassMetaData,
Doctrine\ORM\Query\Filter\SQLFilter;
class SoftDeleteFilter extends SQLFilter
{
/**
* @param ClassMetaData $targetEntity
* @param string $targetTableAlias
* @return string
*/
public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
{
return $targetTableAlias.'.deleted = 1';
}
}
But when I delete the cache and recreate it gives me this error:
PHP Fatal error: Cannot override final method Doctrine\ORM\Query\Filter\SQLFilter::__construct() in /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/Xxxx_Intranet_Flow_Persistence_Doctrine_SoftDeleteFilter.php on line 52
PHP Stack trace:
PHP 1. {main}() /var/www/public/flow:0
PHP 2. require() /var/www/public/flow:18
PHP 3. TYPO3\Flow\Core\Bootstrap->run() /var/www/public/Packages/Framework/TYPO3.Flow/Scripts/flow.php:55
PHP 4. TYPO3\Flow\Cli\CommandRequestHandler->handleRequest() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Bootstrap.php:108
PHP 5. TYPO3\Flow\Cli\CommandRequestHandler->boot() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Cli/CommandRequestHandler.php:89
PHP 6. TYPO3\Flow\Core\Booting\Sequence->invoke() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Cli/CommandRequestHandler.php:153
PHP 7. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:85
PHP 8. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 9. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 10. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 11. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 12. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 13. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 14. TYPO3\Flow\Core\Booting\Sequence->invokeStep() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:105
PHP 15. TYPO3\Flow\Core\Booting\Step->__invoke() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Sequence.php:101
PHP 16. call_user_func:{/var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Step.php:49}() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Step.php:49
PHP 17. TYPO3\Flow\Core\Booting\Scripts::initializePersistence() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Step.php:49
PHP 18. TYPO3\Flow\Persistence\Doctrine\PersistenceManager_Original->initialize() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/Booting/Scripts.php:479
PHP 19. TYPO3\Flow\Object\DependencyInjection\DependencyProxy->getEventManager() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_PersistenceManager.php:56
PHP 20. TYPO3\Flow\Object\DependencyInjection\DependencyProxy->__call() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_PersistenceManager.php:56
PHP 21. TYPO3\Flow\Object\DependencyInjection\DependencyProxy->_activateDependency() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Object/DependencyInjection/DependencyProxy.php:94
PHP 22. Closure->__invoke() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Object/DependencyInjection/DependencyProxy.php:57
PHP 23. TYPO3\Flow\Persistence\Doctrine\PersistenceManager->TYPO3\Flow\Persistence\Doctrine\{closure}() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Object/DependencyInjection/DependencyProxy.php:57
PHP 24. TYPO3\Flow\Object\ObjectManager->get() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_PersistenceManager.php:700
PHP 25. TYPO3\Flow\Object\ObjectManager->buildObjectByFactory() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Object/ObjectManager.php:169
PHP 26. TYPO3\Flow\Persistence\Doctrine\EntityManagerFactory_Original->create() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Object/ObjectManager.php:454
PHP 27. Doctrine\ORM\Query\FilterCollection->enable() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_EntityManagerFactory.php:106
PHP 28. spl_autoload_call() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_EntityManagerFactory.php:111
PHP 29. TYPO3\Flow\Core\ClassLoader->loadClass() /var/www/public/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/TYPO3_Flow_Persistence_Doctrine_EntityManagerFactory.php:111
PHP 30. TYPO3\Flow\Cache\Frontend\PhpFrontend->requireOnce() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Core/ClassLoader.php:149
PHP 31. TYPO3\Flow\Cache\Backend\SimpleFileBackend->requireOnce() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Cache/Frontend/PhpFrontend.php:106
PHP 32. include_once() /var/www/public/Packages/Framework/TYPO3.Flow/Classes/TYPO3/Flow/Cache/Backend/SimpleFileBackend.php:298
Thank you.
Stefano.