Skip to content

Commit

Permalink
Merge 3bbe4c1 into 5f0aeca
Browse files Browse the repository at this point in the history
  • Loading branch information
stefangr committed May 16, 2019
2 parents 5f0aeca + 3bbe4c1 commit 23b7eef
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 6 deletions.
7 changes: 7 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ parameters:
- '#Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition::fixXmlConfig\(\)\.#'
- '#Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface::scalarNode\(\)\.#'
- '#Calling method scalarNode\(\) on possibly null value of type Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface\|null\.#'
# TreeBuilder in Symfony 4.2 and up has a constructor and a getRootNode() method
- '#Class Symfony\\Component\\Config\\Definition\\Builder\\TreeBuilder does not have a constructor and must be instantiated without any parameters\.#'
- '#Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\TreeBuilder::getRootNode\(\)#'
# More Symfony 4.2 compatibility errors
- '#Parameter \#2 \$deleteEmittedEvents of method Prooph\\EventStore\\Projection\\ProjectionManager::deleteProjection\(\) expects bool, array<string>\|bool\|string\|null given\.#'
- '#Property Prooph\\Bundle\\EventStore\\Command\\AbstractProjectionCommand::\$projectionName \(string\) does not accept array<string>\|string\|null\.#'
- '#Parameter \#1 \$id of method Psr\\Container\\ContainerInterface::(has|get)\(\) expects string, array<string>\|string\|null given\.#'
# Projection and projector compatibility is ensured in the AbstractProjectionCommand
- '#Parameter \#1 \$projector of method Prooph\\Bundle\\EventStore\\Projection\\Projection::project\(\) expects Prooph\\EventStore\\Projection\\Projector, Prooph\\EventStore\\Projection\\Projector\|Prooph\\EventStore\\Projection\\ReadModelProjector given\.#'
# MariaDbEventStore is available since pdo-event-store v1.3
Expand Down
16 changes: 10 additions & 6 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ final class Configuration implements ConfigurationInterface
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$treeBuilder = new TreeBuilder('prooph_event_store');
/** @var ArrayNodeDefinition $rootNode */
$rootNode = $treeBuilder->root('prooph_event_store');
$rootNode = \method_exists(TreeBuilder::class, 'getRootNode') ?
$treeBuilder->getRootNode() : $treeBuilder->root('prooph_event_store');

$this->addEventStoreSection($rootNode);
$this->addProjectionManagerSection($rootNode);
Expand All @@ -38,9 +39,10 @@ public function getConfigTreeBuilder()

public function addProjectionManagerSection(ArrayNodeDefinition $node): void
{
$treeBuilder = new TreeBuilder();
$treeBuilder = new TreeBuilder('projections');
/** @var ArrayNodeDefinition $projectionsNode */
$projectionsNode = $treeBuilder->root('projections');
$projectionsNode = \method_exists(TreeBuilder::class, 'getRootNode') ?
$treeBuilder->getRootNode() : $treeBuilder->root('projections');

$beginsWithAt = function ($v) {
return \strpos($v, '@') === 0;
Expand Down Expand Up @@ -104,9 +106,10 @@ public function addProjectionManagerSection(ArrayNodeDefinition $node): void
*/
private function addEventStoreSection(ArrayNodeDefinition $node): void
{
$treeBuilder = new TreeBuilder();
$treeBuilder = new TreeBuilder('repositories');
/** @var ArrayNodeDefinition $repositoriesNode */
$repositoriesNode = $treeBuilder->root('repositories');
$repositoriesNode = \method_exists(TreeBuilder::class, 'getRootNode') ?
$treeBuilder->getRootNode() : $treeBuilder->root('repositories');

$beginsWithAt = function ($v) {
return \strpos($v, '@') === 0;
Expand Down Expand Up @@ -140,6 +143,7 @@ private function addEventStoreSection(ArrayNodeDefinition $node): void
->end()
->scalarNode('stream_name')->defaultValue(null)->end()
->booleanNode('one_stream_per_aggregate')->defaultValue(false)->end()
->booleanNode('disable_identity_map')->defaultValue(false)->end()
->end();

$node
Expand Down
1 change: 1 addition & 0 deletions src/DependencyInjection/ProophEventStoreExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ private function loadEventStore(string $name, array $options, ContainerBuilder $
$repositoryConfig['snapshot_store'] ? new Reference($repositoryConfig['snapshot_store']) : null,
$repositoryConfig['stream_name'],
$repositoryConfig['one_stream_per_aggregate'],
$repositoryConfig['disable_identity_map'] ?? false,
]
);
}
Expand Down
1 change: 1 addition & 0 deletions test/DependencyInjection/ConfigurationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public function it_allows_to_prefix_services_with_an_at(string $configFile): voi
'aggregate_translator' => BlackHoleAggregateTranslator::class,
'stream_name' => 'test',
'one_stream_per_aggregate' => true,
'disable_identity_map' => true,
'snapshot_store' => 'prooph_test.bundle.snapshot_store.in_memory',
],
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<snapshot_store>@prooph_test.bundle.snapshot_store.in_memory</snapshot_store>
<stream_name>test</stream_name>
<one_stream_per_aggregate>true</one_stream_per_aggregate>
<disable_identity_map>true</disable_identity_map>
</repository>
</store>
<projection_managers>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ prooph_event_store:
snapshot_store: '@prooph_test.bundle.snapshot_store.in_memory'
stream_name: 'test'
one_stream_per_aggregate: true
disable_identity_map: true
projection_managers:
main_projection_manager:
event_store: '@Prooph\EventStore\InMemoryEventStore'
Expand Down

0 comments on commit 23b7eef

Please sign in to comment.