public function register(ServiceContainerInterface $serviceContainer) { $serviceContainer['doctrine_dbal.connection_configuration'] = array('driver' => 'pdo_sqlite', 'memory' => true); $serviceContainer['doctrine_dbal.event_manager'] = $serviceContainer->share(function () { return new EventManager(); }); $serviceContainer['doctrine_dbal.connection'] = $serviceContainer->share(function (ServiceContainerInterface $serviceContainer) { return DriverManager::getConnection($serviceContainer['doctrine_dbal.connection_configuration'], null, $serviceContainer['doctrine_dbal.event_manager']); }); $serviceContainer['doctrine_dbal.schema'] = $this->schema; }
public function register(ServiceContainerInterface $container) { $container['doctrine_orm_value_object.annotation_reader'] = $container->share(function () { return new AnnotationReader(); }); $container['doctrine_orm_value_object.annotation_driver'] = $container->share(function (ServiceContainerInterface $container) { return new MetadataAnnotationDriver($container['doctrine_orm_value_object.annotation_reader']); }); $container['doctrine_orm_value_object.metadata_factory'] = $container->share(function (ServiceContainerInterface $container) { return new MetadataFactory($container['doctrine_orm_value_object.annotation_driver']); }); $container['doctrine_orm_value_object.load_value_objects_listener'] = $container->share(function (ServiceContainerInterface $container) { return new LoadValueObjectsEventListener($container['doctrine_orm_value_object.entity_to_value_object_synchronizer']); }); $container['doctrine_orm_value_object.entity_to_value_object_synchronizer'] = $container->share(function (ServiceContainerInterface $container) { return new EntityToValueObjectSynchronizer($container['doctrine_orm_value_object.metadata_factory']); }); $container['doctrine_orm_value_object.value_object_to_entity_synchronizer'] = $container->share(function (ServiceContainerInterface $container) { return new ValueObjectToEntitySynchronizer($container['doctrine_orm_value_object.metadata_factory']); }); $container['doctrine_orm_value_object.store_value_objects_listener'] = $container->share(function (ServiceContainerInterface $container) { return new StoreValueObjectsEventListener($container['doctrine_orm_value_object.value_object_to_entity_synchronizer']); }); $container['doctrine_orm_value_object.mapping_driver'] = $container->share(function (ServiceContainerInterface $container) { return new MappingAnnotationDriver($container['doctrine_orm_value_object.annotation_reader']); }); $container['doctrine_orm_value_object.add_value_object_mapping_listener'] = $container->share(function (ServiceContainerInterface $container) { return new AddValueObjectMappingEventSubscriber($container['doctrine_orm_value_object.metadata_factory'], $container['doctrine_orm_value_object.annotation_reader'], $container['doctrine_orm_value_object.mapping_driver']); }); $container['doctrine_dbal.event_manager'] = $container->extend('doctrine_dbal.event_manager', function (EventManager $eventManager, ServiceContainerInterface $container) { $eventManager->addEventSubscriber($container['doctrine_orm_value_object.load_value_objects_listener']); $eventManager->addEventSubscriber($container['doctrine_orm_value_object.store_value_objects_listener']); $eventManager->addEventSubscriber($container['doctrine_orm_value_object.add_value_object_mapping_listener']); return $eventManager; }); }