Finalmente, ho capito ...:
invece di:
'doctrine' => array(
'eventmanager' => array(
'orm_default' => array(
'subscribers' => array(
'Gedmo\Uploadable\UploadableListener',
//...
),
),
),
'driver' => array(
// ...
),
),
Usa questo: Registra l'ascoltatore caricato tramite ServiceManager:
'doctrine' => array(
'eventmanager' => array(
'orm_default' => array(
'subscribers' => array(
'doctrine_extensions.uploadable',
//...
),
),
),
'driver' => array(
// ...
),
),
'service_manager' => array(
'invokables' => array(
'doctrine_extensions.uploadable' => 'Gedmo\Uploadable\UploadableListener'
)
),
Quindi nel controller come esempio, funziona in questo modo:
$uploadManager = $this->getServiceLocator()->get('doctrine_extensions.uploadable');
foreach($this->getRequest()->getFiles()->toArray() as $file) {
$entity = new MyEntity();
$uploadManager->addEntityFileInfo($entity, $file);
// persist($entity) ...
}