private function getDoctrineEvents(array $typeConfig)
    {
        switch ($typeConfig['driver']) {
            case 'orm':
                $eventsClass = '\Doctrine\ORM\Events';
                break;
            case 'phpcr':
                $eventsClass = '\Doctrine\ODM\PHPCR\Event';
                break;
            case 'mongodb':
                $eventsClass = '\Doctrine\ODM\MongoDB\Events';
                break;
            default:
                throw new \InvalidArgumentException(sprintf('Cannot determine events for driver "%s"', $typeConfig['driver']));
        }

        $events = [];
        $eventMapping = [
            'insert' => [constant($eventsClass.'::postPersist')],
            'update' => [constant($eventsClass.'::postUpdate')],
            'delete' => [constant($eventsClass.'::preRemove')],
            'flush' => [constant($eventsClass.'::postFlush')],
        ];

        foreach ($eventMapping as $event => $doctrineEvents) {
            if (isset($typeConfig['listener'][$event]) && $typeConfig['listener'][$event]) {
                $events = array_merge($events, $doctrineEvents);
            }
        }

        return $events;
    }
private function getDoctrineEvents(array $typeConfig)
    {
        switch ($typeConfig['driver']) {
            case 'orm':
                $eventsClass = '\Doctrine\ORM\Events';
                break;
            case 'phpcr':
                $eventsClass = '\Doctrine\ODM\PHPCR\Event';
                break;
            case 'mongodb':
                $eventsClass = '\Doctrine\ODM\MongoDB\Events';
                break;
            default:
                throw new \InvalidArgumentException(sprintf('Cannot determine events for driver "%s"', $typeConfig['driver']));
        }

        $events = [];
        $eventMapping = [
            'insert' => [constant($eventsClass.'::postPersist')],
            'update' => [constant($eventsClass.'::postUpdate')],
            'delete' => [constant($eventsClass.'::preRemove')],
            'flush' => [constant($eventsClass.'::postFlush')],
        ];

        foreach ($eventMapping as $event => $doctrineEvents) {
            if (isset($typeConfig['listener'][$event]) && $typeConfig['listener'][$event]) {
                $events = array_merge($events, $doctrineEvents);
            }
        }

        return $events;
    }
private function getDoctrineEvents ( array $ typeConfig ) { switch ( $ typeConfig [ 'driver' ] ) { case 'orm' : $ eventsClass = '\Doctrine\ORM\Events' ; break ; case 'phpcr' : $ eventsClass = '\Doctrine\ODM\PHPCR\Event' ; break ; case 'mongodb' : $ eventsClass = '\Doctrine\ODM\MongoDB\Events' ; break ; default : throw new \ InvalidArgumentException ( sprintf ( 'Cannot determine events for driver "%s"' , $ typeConfig [ 'driver' ] ) ) ; } $ events = [ ] ; $ eventMapping = [ 'insert' => [ constant ( $ eventsClass . '::postPersist' ) ] , 'update' => [ constant ( $ eventsClass . '::postUpdate' ) ] , 'delete' => [ constant ( $ eventsClass . '::preRemove' ) ] , 'flush' => [ constant ( $ eventsClass . '::postFlush' ) ] , ] ; foreach ( $ eventMapping as $ event => $ doctrineEvents ) { if ( isset ( $ typeConfig [ 'listener' ] [ $ event ] ) && $ typeConfig [ 'listener' ] [ $ event ] ) { $ events = array_merge ( $ events , $ doctrineEvents ) ; } } return $ events ; }
Map Elastica to Doctrine events for the current driver.
Map Elastica to Doctrine events for the current driver .