diff --git a/composer.json b/composer.json index e059c77..0f35afc 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,6 @@ "clue/block-react": "^1.3", "doctrine/annotations": "^1.4", "mammatus/life-cycle-events": "^1.0", - "mammatus/metrics": "dev-master", "monolog/monolog": "^2.0", "php-di-definitions/definitions-gatherer": "^1", "php-di-definitions/react-event-loop-inspected": "dev-master", @@ -18,6 +17,10 @@ "psr/container": "^1", "psr/event-dispatcher": "^1", "psr/log": "^1.1", + "react-parallel/event-loop": "^1.1", + "react-parallel/object-proxy": "dev-master", + "react-parallel/psr-11-container-proxy": "dev-master", + "react-parallel/react-parallel": "^1.1", "react/event-loop": "^1", "thecodingmachine/safe": "^1.3", "wyrihaximus/broadcast": "^1.0", @@ -26,9 +29,12 @@ "wyrihaximus/constants": "^1.5", "wyrihaximus/doctrine-annotation-autoloader": "^1.0", "wyrihaximus/get-in-packages-composer.jason": "^1.0", + "wyrihaximus/metrics": "^1.0", + "wyrihaximus/metrics-lazy-registry": "^1.0", + "wyrihaximus/metrics-tactician": "^1.0", "wyrihaximus/monolog-factory": "^1.0", - "wyrihaximus/psr-3-context-logger": "^1.0", - "wyrihaximus/react-psr-3-stdio": "^2.0" + "wyrihaximus/psr-3-callable-throwable-logger": "^2.1", + "wyrihaximus/psr-3-context-logger": "^1.0" }, "require-dev": { "mammatus/test-app": "dev-master", diff --git a/composer.lock b/composer.lock index 6cd5cd4..8213afb 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "152082ebba10634800dd3d7ee4525fd8", + "content-hash": "cf6ea473669daeaf961d78cedb5b4d88", "packages": [ { "name": "api-clients/rx", @@ -583,16 +583,16 @@ }, { "name": "illuminate/collections", - "version": "v8.34.0", + "version": "v8.36.2", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", - "reference": "e18d6e4cf03dd597bc3ecd86fefc2023d0c7a5e8" + "reference": "591e31015a8b0731708c54411cb52d50a00b2bc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/collections/zipball/e18d6e4cf03dd597bc3ecd86fefc2023d0c7a5e8", - "reference": "e18d6e4cf03dd597bc3ecd86fefc2023d0c7a5e8", + "url": "https://api.github.com/repos/illuminate/collections/zipball/591e31015a8b0731708c54411cb52d50a00b2bc3", + "reference": "591e31015a8b0731708c54411cb52d50a00b2bc3", "shasum": "" }, "require": { @@ -633,20 +633,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-03-19T00:05:33+00:00" + "time": "2021-04-01T13:26:52+00:00" }, { "name": "illuminate/contracts", - "version": "v8.34.0", + "version": "v8.36.2", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "121cea1d8b8772bc7fee99c71ecf0f57c1d77b3b" + "reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/121cea1d8b8772bc7fee99c71ecf0f57c1d77b3b", - "reference": "121cea1d8b8772bc7fee99c71ecf0f57c1d77b3b", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/5764f703ea8f74ced163125d810951cd5ef2b7e1", + "reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1", "shasum": "" }, "require": { @@ -681,11 +681,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-03-12T14:45:30+00:00" + "time": "2021-04-01T13:09:31+00:00" }, { "name": "illuminate/macroable", - "version": "v8.34.0", + "version": "v8.36.2", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -991,55 +991,6 @@ ], "time": "2020-12-18T17:14:06+00:00" }, - { - "name": "mammatus/metrics", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/MammatusPHP/metrics.git", - "reference": "7e3800ac58a22488a0c2f59d6b14d06de2908723" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MammatusPHP/metrics/zipball/7e3800ac58a22488a0c2f59d6b14d06de2908723", - "reference": "7e3800ac58a22488a0c2f59d6b14d06de2908723", - "shasum": "" - }, - "require": { - "php": "^7.4", - "psr/log": "^1.1", - "react-parallel/event-loop": "^1.1", - "react-parallel/object-proxy": "dev-master", - "react-parallel/psr-11-container-proxy": "dev-master", - "react-parallel/react-parallel": "^1.1", - "wyrihaximus/metrics": "^1.0", - "wyrihaximus/metrics-lazy-registry": "^1.0", - "wyrihaximus/metrics-tactician": "^1.0", - "wyrihaximus/psr-3-callable-throwable-logger": "^2.1" - }, - "require-dev": { - "wyrihaximus/async-test-utilities": "^2.3" - }, - "default-branch": true, - "type": "library", - "extra": { - "php-di-definitions": { - "di": [ - "etc/di/*.php" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "🐙 Metrics Hook-ins", - "support": { - "issues": "https://github.com/MammatusPHP/metrics/issues", - "source": "https://github.com/MammatusPHP/metrics/tree/master" - }, - "time": "2021-03-21T12:46:24+00:00" - }, { "name": "monolog/monolog", "version": "2.2.0", @@ -2648,12 +2599,12 @@ "source": { "type": "git", "url": "https://github.com/reactphp-parallel/object-proxy.git", - "reference": "f6f324b9c19168198c6e24eebfdde34d294c7383" + "reference": "ae8e18ec0860ead65c778cce5654b980ef0b5dcd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp-parallel/object-proxy/zipball/f6f324b9c19168198c6e24eebfdde34d294c7383", - "reference": "f6f324b9c19168198c6e24eebfdde34d294c7383", + "url": "https://api.github.com/repos/reactphp-parallel/object-proxy/zipball/ae8e18ec0860ead65c778cce5654b980ef0b5dcd", + "reference": "ae8e18ec0860ead65c778cce5654b980ef0b5dcd", "shasum": "" }, "require": { @@ -2750,7 +2701,7 @@ "type": "github" } ], - "time": "2021-03-27T22:15:10+00:00" + "time": "2021-04-07T17:55:46+00:00" }, { "name": "react-parallel/object-proxy-attributes", @@ -2814,12 +2765,12 @@ "source": { "type": "git", "url": "https://github.com/reactphp-parallel/psr-11-container-proxy.git", - "reference": "203c5b8ac5c3063997c8ab5855f8601c5ddb47a6" + "reference": "aa37331f2953d27b9205bb768a3073216eab453f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp-parallel/psr-11-container-proxy/zipball/203c5b8ac5c3063997c8ab5855f8601c5ddb47a6", - "reference": "203c5b8ac5c3063997c8ab5855f8601c5ddb47a6", + "url": "https://api.github.com/repos/reactphp-parallel/psr-11-container-proxy/zipball/aa37331f2953d27b9205bb768a3073216eab453f", + "reference": "aa37331f2953d27b9205bb768a3073216eab453f", "shasum": "" }, "require": { @@ -2871,7 +2822,7 @@ "type": "github" } ], - "time": "2021-03-24T08:31:49+00:00" + "time": "2021-04-06T07:27:29+00:00" }, { "name": "react-parallel/react-parallel", @@ -5114,67 +5065,18 @@ }, "time": "2018-05-06T20:31:49+00:00" }, - { - "name": "wyrihaximus/psr-3-utilities", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/WyriHaximus/php-psr-3-utilities.git", - "reference": "27126a013401e48ffe3a32b632303884e195ec8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/php-psr-3-utilities/zipball/27126a013401e48ffe3a32b632303884e195ec8d", - "reference": "27126a013401e48ffe3a32b632303884e195ec8d", - "shasum": "" - }, - "require": { - "php": "^7.2", - "psr/log": "^1.0" - }, - "require-dev": { - "api-clients/cs-fixer-config": "^1.1", - "api-clients/test-utilities": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "WyriHaximus\\PSR3\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Cees-Jan Kiewiet", - "email": "ceesjank@gmail.com", - "homepage": "http://wyrihaximus.net/" - } - ], - "description": "PSR-3 logger utilities", - "support": { - "issues": "https://github.com/WyriHaximus/php-psr-3-utilities/issues", - "source": "https://github.com/WyriHaximus/php-psr-3-utilities/tree/master" - }, - "time": "2018-12-16T16:39:37+00:00" - }, { "name": "wyrihaximus/react-mutex-contracts", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/WyriHaximus/reactphp-mutex-contracts.git", - "reference": "c2f97f027f2ffa114ca20ecbaa2aaadefdf8b84c" + "reference": "b5a5567128035b4c8ce924fcb36e56c72fca7775" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/reactphp-mutex-contracts/zipball/c2f97f027f2ffa114ca20ecbaa2aaadefdf8b84c", - "reference": "c2f97f027f2ffa114ca20ecbaa2aaadefdf8b84c", + "url": "https://api.github.com/repos/WyriHaximus/reactphp-mutex-contracts/zipball/b5a5567128035b4c8ce924fcb36e56c72fca7775", + "reference": "b5a5567128035b4c8ce924fcb36e56c72fca7775", "shasum": "" }, "require": { @@ -5197,7 +5099,7 @@ "description": "Mutex locking contracts for ReactPHP projects", "support": { "issues": "https://github.com/WyriHaximus/reactphp-mutex-contracts/issues", - "source": "https://github.com/WyriHaximus/reactphp-mutex-contracts/tree/1.0.0" + "source": "https://github.com/WyriHaximus/reactphp-mutex-contracts/tree/1.1.0" }, "funding": [ { @@ -5205,58 +5107,7 @@ "type": "github" } ], - "time": "2021-01-21T19:16:05+00:00" - }, - { - "name": "wyrihaximus/react-psr-3-stdio", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/WyriHaximus/reactphp-psr-3-stdio.git", - "reference": "311ae61e00d40d22092d43a07b702081b5216697" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/reactphp-psr-3-stdio/zipball/311ae61e00d40d22092d43a07b702081b5216697", - "reference": "311ae61e00d40d22092d43a07b702081b5216697", - "shasum": "" - }, - "require": { - "php": "^7.0", - "psr/log": "^1.0", - "react/event-loop": "^1.0 || ^0.5 || ^0.4", - "react/stream": "^1.0 || ^0.7 || ^0.6", - "wyrihaximus/psr-3-utilities": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.3", - "jakub-onderka/php-console-highlighter": "^0.3.2", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phake/phake": "^2.3", - "phpunit/phpunit": "^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "WyriHaximus\\React\\PSR3\\Stdio\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Cees-Jan Kiewiet", - "email": "ceesjank@gmail.com" - } - ], - "description": "Async PSR-3 stdio logger", - "support": { - "issues": "https://github.com/WyriHaximus/reactphp-psr-3-stdio/issues", - "source": "https://github.com/WyriHaximus/reactphp-psr-3-stdio/tree/master" - }, - "time": "2018-01-11T08:53:19+00:00" + "time": "2021-04-03T20:22:48+00:00" }, { "name": "wyrihaximus/string-get-in", @@ -5450,16 +5301,16 @@ }, { "name": "amphp/byte-stream", - "version": "v1.8.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", - "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", "shasum": "" }, "require": { @@ -5515,9 +5366,15 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/master" + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" }, - "time": "2020-06-29T18:35:05+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" }, { "name": "beberlei/assert", @@ -5663,16 +5520,16 @@ }, { "name": "composer/composer", - "version": "1.10.20", + "version": "1.10.21", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "e55d297525f0ecc805c813a0f63a40114fd670f6" + "reference": "04021432f4a9cbd9351dd166b8c193f42c36a39c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/e55d297525f0ecc805c813a0f63a40114fd670f6", - "reference": "e55d297525f0ecc805c813a0f63a40114fd670f6", + "url": "https://api.github.com/repos/composer/composer/zipball/04021432f4a9cbd9351dd166b8c193f42c36a39c", + "reference": "04021432f4a9cbd9351dd166b8c193f42c36a39c", "shasum": "" }, "require": { @@ -5742,7 +5599,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/1.10.20" + "source": "https://github.com/composer/composer/tree/1.10.21" }, "funding": [ { @@ -5758,7 +5615,7 @@ "type": "tidelift" } ], - "time": "2021-01-27T14:41:06+00:00" + "time": "2021-04-01T07:16:35+00:00" }, { "name": "composer/package-versions-deprecated", @@ -6683,16 +6540,16 @@ }, { "name": "filp/whoops", - "version": "2.11.0", + "version": "2.12.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "f6e14679f948d8a5cfb866fa7065a30c66bd64d3" + "reference": "d501fd2658d55491a2295ff600ae5978eaad7403" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/f6e14679f948d8a5cfb866fa7065a30c66bd64d3", - "reference": "f6e14679f948d8a5cfb866fa7065a30c66bd64d3", + "url": "https://api.github.com/repos/filp/whoops/zipball/d501fd2658d55491a2295ff600ae5978eaad7403", + "reference": "d501fd2658d55491a2295ff600ae5978eaad7403", "shasum": "" }, "require": { @@ -6742,7 +6599,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.11.0" + "source": "https://github.com/filp/whoops/tree/2.12.0" }, "funding": [ { @@ -6750,7 +6607,7 @@ "type": "github" } ], - "time": "2021-03-19T12:00:00+00:00" + "time": "2021-03-30T12:00:00+00:00" }, { "name": "guzzlehttp/guzzle", @@ -8358,21 +8215,21 @@ }, { "name": "php-parallel-lint/php-parallel-lint", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", - "reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca" + "reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/474f18bc6cc6aca61ca40bfab55139de614e51ca", - "reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/772a954e5f119f6f5871d015b23eabed8cbdadfb", + "reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=5.4.0" + "php": ">=5.3.0" }, "replace": { "grogy/php-parallel-lint": "*", @@ -8381,7 +8238,7 @@ "require-dev": { "nette/tester": "^1.3 || ^2.0", "php-parallel-lint/php-console-highlighter": "~0.3", - "squizlabs/php_codesniffer": "~3.0" + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet" @@ -8409,9 +8266,9 @@ "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", "support": { "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", - "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/master" + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.0" }, - "time": "2020-04-04T12:18:32+00:00" + "time": "2021-04-07T14:42:48+00:00" }, { "name": "phpspec/prophecy", @@ -8534,16 +8391,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.82", + "version": "0.12.83", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "3920f0fb0aff39263d3a4cb0bca120a67a1a6a11" + "reference": "4a967cec6efb46b500dd6d768657336a3ffe699f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3920f0fb0aff39263d3a4cb0bca120a67a1a6a11", - "reference": "3920f0fb0aff39263d3a4cb0bca120a67a1a6a11", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4a967cec6efb46b500dd6d768657336a3ffe699f", + "reference": "4a967cec6efb46b500dd6d768657336a3ffe699f", "shasum": "" }, "require": { @@ -8574,7 +8431,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.82" + "source": "https://github.com/phpstan/phpstan/tree/0.12.83" }, "funding": [ { @@ -8590,7 +8447,7 @@ "type": "tidelift" } ], - "time": "2021-03-19T06:08:17+00:00" + "time": "2021-04-03T15:35:45+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -10744,16 +10601,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.8", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", "shasum": "" }, "require": { @@ -10796,7 +10653,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2020-10-23T02:01:07+00:00" + "time": "2021-04-09T00:54:41+00:00" }, { "name": "symfony/config", @@ -12475,8 +12332,9 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "mammatus/metrics": 20, "php-di-definitions/react-event-loop-inspected": 20, + "react-parallel/object-proxy": 20, + "react-parallel/psr-11-container-proxy": 20, "mammatus/test-app": 20 }, "prefer-stable": true, diff --git a/etc/di/logger.php b/etc/di/logger.php index 8f960eb..6328e2e 100644 --- a/etc/di/logger.php +++ b/etc/di/logger.php @@ -1,23 +1,34 @@ - [ - LoggerInterface::class => factory(static function (Logger $logger): LoggerInterface { - return $logger; - }), - Logger::class => factory(static function ( - LoopInterface $loop, + LoggerInterface::class => factory(static function ( + Proxy $proxy, string $version - ): Logger { - return Factory::create('', StdioLogger::create($loop)->withHideLevel(TRUE_), ['version' => $version]); + ): LoggerInterface { + $logger = $proxy->thread( + Factory::create( + '', + new Logger('', [new StreamHandler('php://stdout')]), + ['version' => $version] + ), + LoggerInterface::class + ); + + $proxy->on('error', CallableThrowableLogger::create($logger)); + + return $logger; })-> parameter('version', env('APP_VERSION', 'dev-' . time())), ])(); diff --git a/etc/di/metrics-registry.php b/etc/di/metrics-registry.php new file mode 100644 index 0000000..d524fd5 --- /dev/null +++ b/etc/di/metrics-registry.php @@ -0,0 +1,9 @@ + new InMemoryRegistry(Configuration::create()), +]; diff --git a/etc/di/object-proxy.php b/etc/di/object-proxy.php new file mode 100644 index 0000000..2405408 --- /dev/null +++ b/etc/di/object-proxy.php @@ -0,0 +1,21 @@ + static fn (): ProxyListInterface => new ProxyList(), + Configuration::class => static fn (Factory $factory, Registry $registry, ProxyListInterface $proxyList): Configuration => (new Configuration($factory))->withProxyList($proxyList)->withMetrics(Configuration\Metrics::create($registry)), + Proxy::class => static function (Configuration $configuration, Registry $registry) { + $proxy = new Proxy($configuration); + $proxy->share($registry, Registry::class); + + return $proxy; + }, +]; diff --git a/etc/di/react-parallel.php b/etc/di/react-parallel.php new file mode 100644 index 0000000..0eda41f --- /dev/null +++ b/etc/di/react-parallel.php @@ -0,0 +1,12 @@ + static function (LoopInterface $loop, Registry $registry) { + return (new Factory($loop))->withMetrics(Metrics::create($registry)); + }, +];