qandidate-labs/broadway — pull request #73 by kelvinj (2014-10-31 13:26:13+00:00)
Title: [WIP] [RFC] EventStore management

Allows events to be pulled out of the EventStore using a fluid criteria builder.

- includes a CallableEventVisitor, so event's can be easily processed using a callback function.
- no tests as of yet
- beyond the Axon implementation, added ability to query a property using `beginsWith`, `contains` and `endsWith`. In DBAL implementation, this correlates with `LIKE` statements.

Example of usage:

```php
newCriteriaBuilder();
$type = $criteriaBuilder->property('type'); // corresponds to column in events table
$criteria = $type->beginsWith('MyBoundedContext.AggregateRoot1.')->orWith(
$type->beginsWith('MyBoundedContext.AggregateRoot2.')
);
$eventStore->visitEvents($visitor, $criteria);
```

*Heavily* based on AxonFramework's implementation.