Skip to content

Add PSR-Container, also enable integration to 3rd party containers - #846

Merged
DanielBadura merged 1 commit into
4.0.xfrom
psr-container
Oct 6, 2026
Merged

DanielBadura merged 1 commit into
4.0.xfrom
psr-container

Conversation

@DanielBadura

@DanielBadura DanielBadura commented Apr 21, 2026 •

Copy link
Copy Markdown
Member

Adds a PSR-11 container so the library can be wired without the Symfony bundle.

  • Factory::create([...]) builds a lazy container from one config array (same shape as the bundle config); only connection is required
  • Config is validated, and invalid options throw InvalidConfiguration with the path, e.g. event_sourcing.store
  • Can resolve services from an external container (PHP-DI, Laminas, League/CakePHP)
  • Docs: new docs/container.md, and getting-started.md now uses the container
  • Tests: unit tests, plus integration tests against PHP-DI, Laminas and League (new CI workflow)

Comment thread composer.json Outdated
@github-actions

github-actions Bot commented Apr 21, 2026 •

Copy link
Copy Markdown

Hello 👋

here is the most recent benchmark result:

SplitStreamBench
================

+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                         | time (kde mode)                                     | memory                                     |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                 | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad10000Events () | 1.757ms (±0.00%)   | 1.863ms (±0.00%)   | -5.69%    | 35.774mb        | 36.295mb   | -1.43%      |
| benchSave10000Events () | 321.504ms (±0.00%) | 426.117ms (±0.00%) | -24.55%   | 35.909mb        | 35.909mb   | 0.00%       |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SimpleSetupTaggableStoreBench
=============================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 849.100μs (±0.00%) | 746.200μs (±0.00%) | +13.79%   | 36.312mb        | 36.312mb   | 0.00%       |
| benchLoad10000Events ()                | 44.199ms (±0.00%)  | 44.819ms (±0.00%)  | -1.38%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchSave1Event ()                     | 1.171ms (±0.00%)   | 1.231ms (±0.00%)   | -4.88%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchSave10000Events ()                | 215.169ms (±0.00%) | 236.242ms (±0.00%) | -8.92%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchSave10000Aggregates ()            | 5.620s (±0.00%)    | 5.639s (±0.00%)    | -0.33%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 3.471s (±0.00%)    | 3.430s (±0.00%)    | +1.19%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchAppend1Event ()                   | 1.248ms (±0.00%)   | 1.153ms (±0.00%)   | +8.19%    | 36.312mb        | 36.312mb   | 0.00%       |
| benchAppend100Events ()                | 5.199ms (±0.00%)   | 5.000ms (±0.00%)   | +3.97%    | 36.312mb        | 36.312mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SubscriptionEngineBench
=======================

+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                               | memory                                     |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>  | Tag: base       | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 1.621s (±0.00%) | 1.494s (±0.00%) | +8.46%    | 48.301mb        | 48.301mb   | 0.00%       |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+

NoopSubscriptionEngineBench
===========================

+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                                   | memory                                     |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 62.185ms (±0.00%) | 56.651ms (±0.00%) | +9.77%    | 48.301mb        | 48.301mb   | 0.00%       |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

SimpleSetupStreamStoreBench
===========================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 943.800μs (±0.00%) | 862.000μs (±0.00%) | +9.49%    | 35.146mb        | 35.146mb   | 0.00%       |
| benchLoad10000Events ()                | 42.610ms (±0.00%)  | 40.989ms (±0.00%)  | +3.95%    | 35.146mb        | 35.146mb   | 0.00%       |
| benchSave1Event ()                     | 1.143ms (±0.00%)   | 1.092ms (±0.00%)   | +4.67%    | 35.146mb        | 35.146mb   | 0.00%       |
| benchSave10000Events ()                | 187.400ms (±0.00%) | 184.336ms (±0.00%) | +1.66%    | 35.146mb        | 35.146mb   | 0.00%       |
| benchSave10000Aggregates ()            | 5.330s (±0.00%)    | 5.216s (±0.00%)    | +2.18%    | 35.146mb        | 35.146mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 3.391s (±0.00%)    | 3.341s (±0.00%)    | +1.50%    | 35.147mb        | 35.147mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SubscriptionEngineBatchBench
============================

+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                                   | memory                                     |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 59.975ms (±0.00%) | 75.641ms (±0.00%) | -20.71%   | 35.726mb        | 35.726mb   | 0.00%       |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

PersonalDataBench
=================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 617.000μs (±0.00%) | 686.000μs (±0.00%) | -10.06%   | 37.008mb        | 37.008mb   | 0.00%       |
| benchLoad10000Events ()                | 96.905ms (±0.00%)  | 101.922ms (±0.00%) | -4.92%    | 37.008mb        | 37.008mb   | 0.00%       |
| benchSave1Event ()                     | 1.548ms (±0.00%)   | 2.129ms (±0.00%)   | -27.30%   | 37.008mb        | 37.008mb   | 0.00%       |
| benchSave10000Events ()                | 240.044ms (±0.00%) | 253.822ms (±0.00%) | -5.43%    | 37.063mb        | 37.063mb   | 0.00%       |
| benchSave10000Aggregates ()            | 8.363s (±0.00%)    | 9.621s (±0.00%)    | -13.08%   | 37.008mb        | 37.008mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 6.153s (±0.00%)    | 6.373s (±0.00%)    | -3.45%    | 37.008mb        | 37.008mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SnapshotsBench
==============

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad10000EventsMissingSnapshot () | 42.875ms (±0.00%)  | 42.698ms (±0.00%)  | +0.41%    | 35.151mb        | 35.151mb   | 0.00%       |
| benchLoad10000Events ()                | 744.700μs (±0.00%) | 741.000μs (±0.00%) | +0.50%    | 35.151mb        | 35.151mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

CommandToQueryBench
===================

+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
|                | time (kde mode)                                 | memory                                     |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| subject        | Tag: <current>   | Tag: base        | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| benchCreate () | 2.775ms (±0.00%) | 2.676ms (±0.00%) | +3.69%    | 5.056mb         | 5.056mb    | 0.00%       |
| benchUpdate () | 3.542ms (±0.00%) | 3.844ms (±0.00%) | -7.86%    | 5.067mb         | 5.067mb    | 0.00%       |
| benchBoth ()   | 6.013ms (±0.00%) | 6.387ms (±0.00%) | -5.86%    | 5.389mb         | 5.389mb    | 0.00%       |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+

This comment gets update everytime a new commit comes in!

@DanielBadura
DanielBadura force-pushed the psr-container branch 2 times, most recently from 4bfdafc to 726ab0a Compare April 24, 2026 08:27
@DanielBadura
DanielBadura changed the base branch from 3.20.x to 4.0.x October 4, 2026 18:52
@DanielBadura DanielBadura self-assigned this Oct 5, 2026
@DanielBadura DanielBadura added documentation Improvements or additions to documentation enhancement New feature or request labels Oct 5, 2026
@DanielBadura DanielBadura added this to the 4.0.0 milestone Oct 5, 2026
@DanielBadura
DanielBadura marked this pull request as ready for review October 5, 2026 14:42
@DanielBadura DanielBadura changed the title Add PSR-Container Add PSR-Container, also enable integration to 3rd party containers Oct 5, 2026
Add array shape generation based on configuration tree
@DanielBadura
DanielBadura merged commit 74361f1 into 4.0.x Oct 6, 2026
41 of 43 checks passed
@DanielBadura
DanielBadura deleted the psr-container branch October 6, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants