Skip to content

Commit

Permalink
refactor: better services injection with factories
Browse files Browse the repository at this point in the history
  • Loading branch information
gaelreyrol committed Feb 2, 2024
1 parent ad4a4f3 commit eb490cf
Show file tree
Hide file tree
Showing 128 changed files with 1,912 additions and 1,535 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
- name: Run PHPStan analysis
run: |
./vendor/bin/phpstan --version
./vendor/bin/phpstan analyse --no-interaction --no-progress --ansi --format=github
./vendor/bin/phpstan analyse --no-interaction --no-progress --ansi --error-format=github --memory-limit=256M
phpunit:
name: PHPUnit (PHP ${{ matrix.php }})
runs-on: ubuntu-latest
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ composer.lock
phpunit.xml
.phpunit.result.cache
.phpunit.cache
coverage
18 changes: 12 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@
"open-telemetry/api": "^1.0",
"open-telemetry/context": "^1.0",
"open-telemetry/opentelemetry-logger-monolog": "^1.0",
"open-telemetry/opentelemetry-propagation-server-timing": "^0.0.1",
"open-telemetry/opentelemetry-propagation-traceresponse": "^0.0.2",
"open-telemetry/sdk": "^1.0",
"open-telemetry/sem-conv": "^1.23",
"open-telemetry/sem-conv": "^1.24",
"open-telemetry/symfony-sdk-bundle": "^0.0.24",
"php-http/discovery": "^1.19",
"psr/http-factory": "^1.0",
Expand All @@ -45,15 +47,15 @@
"ext-mbstring": "*",
"ext-opentelemetry": "*",
"ext-xdebug": "*",
"doctrine/dbal": "^3.7",
"doctrine/dbal": "^3.8",
"doctrine/doctrine-bundle": "^2.11",
"doctrine/orm": "^2.17",
"ergebnis/composer-normalize": "^2.41",
"friendsofphp/php-cs-fixer": "^3.41",
"ergebnis/composer-normalize": "^2.42",
"friendsofphp/php-cs-fixer": "^3.49",
"guzzlehttp/promises": "^2.0",
"maglnet/composer-require-checker": "^4.8",
"matthiasnoback/symfony-config-test": "^5.1",
"matthiasnoback/symfony-dependency-injection-test": "^5.0",
"matthiasnoback/symfony-dependency-injection-test": "^5.1",
"nyholm/symfony-bundle-test": "^3.0",
"open-telemetry/exporter-otlp": "^1.0",
"open-telemetry/exporter-zipkin": "^1.0",
Expand All @@ -65,7 +67,7 @@
"phpstan/phpstan-phpunit": "^1.3",
"phpstan/phpstan-strict-rules": "^1.5",
"phpstan/phpstan-symfony": "^1.3",
"phpunit/phpunit": "^9.6",
"phpunit/phpunit": "^10.5",
"pyrech/composer-changelogs": "^2.1",
"roave/security-advisories": "dev-master",
"symfony/cache": "^6.4 || ^7.0",
Expand Down Expand Up @@ -117,6 +119,10 @@
},
"scripts": {
"check-reqs": "@php vendor/bin/composer-require-checker check",
"coverage": [
"@putenv XDEBUG_MODE=coverage",
"@phpunit --coverage-html=coverage"
],
"format": [
"@php-cs-fixer:fix",
"@composer normalize"
Expand Down
27 changes: 10 additions & 17 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.6/phpunit.xsd"
bootstrap="vendor/autoload.php"
cacheResultFile=".phpunit.cache/test-results"
executionOrder="depends,defects"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
convertDeprecationsToExceptions="true"
failOnRisky="true"
failOnWarning="false"
verbose="true">
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
bootstrap="vendor/autoload.php"
executionOrder="depends,defects"
beStrictAboutOutputDuringTests="true"
failOnRisky="true"
failOnWarning="false"
cacheDirectory=".phpunit.cache"
>

<php>
<ini name="error_reporting" value="-1"/>
Expand All @@ -24,14 +22,9 @@
</testsuite>
</testsuites>

<coverage cacheDirectory=".phpunit.cache/code-coverage"
processUncoveredFiles="true">
<source>
<include>
<directory suffix=".php">src</directory>
</include>
</coverage>

<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
</listeners>
</source>
</phpunit>
7 changes: 3 additions & 4 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Exporter\OtlpExporterOptions;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Log\LoggerProvider\LoggerProviderEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Log\LogProcessor\LogProcessorEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Metric\MeterProvider\ExemplarFilterEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Metric\ExemplarFilterEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Metric\MeterProvider\MeterProviderEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Metric\MetricExporter\MetricTemporalityEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace\SpanProcessor\SpanProcessorEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace\TracerProvider\TraceProviderEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace\TracerProvider\TraceSamplerEnum;
use FriendsOfOpenTelemetry\OpenTelemetryBundle\OpenTelemetry\Trace\TraceSamplerEnum;
use Monolog\Level;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
Expand Down Expand Up @@ -237,8 +237,7 @@ private function getTracingProvidersNode(): ArrayNodeDefinition
->values(array_map(fn (TraceSamplerEnum $enum) => $enum->value, TraceSamplerEnum::cases()))
->isRequired()
->end()
->floatNode('ratio')->end()
->scalarNode('parent')->cannotBeEmpty()->end()
->floatNode('probability')->end()
->end()
->end()
->arrayNode('processors')
Expand Down
44 changes: 0 additions & 44 deletions src/DependencyInjection/ExporterDefinitionsFactory.php

This file was deleted.

10 changes: 7 additions & 3 deletions src/DependencyInjection/OpenTelemetryExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,13 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
{
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__).'/Resources/config'));
$loader->load('services.php');
$loader->load('services_transports.php');
$loader->load('services_logs.php');
$loader->load('services_metrics.php');
$loader->load('services_traces.php');

Check warning on line 41 in src/DependencyInjection/OpenTelemetryExtension.php

View check run for this annotation

Codecov / codecov/patch

src/DependencyInjection/OpenTelemetryExtension.php#L38-L41

Added lines #L38 - L41 were not covered by tests
$loader->load('services_tracing_instrumentation.php');

$this->loadService($mergedConfig['service'], $container);
$this->loadServiceParams($mergedConfig['service'], $container);

Check warning on line 44 in src/DependencyInjection/OpenTelemetryExtension.php

View check run for this annotation

Codecov / codecov/patch

src/DependencyInjection/OpenTelemetryExtension.php#L44

Added line #L44 was not covered by tests
$this->loadInstrumentationParams($mergedConfig['instrumentation'], $container);

(new OpenTelemetryTracesExtension())($mergedConfig['traces'], $container);
Expand All @@ -55,7 +59,7 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
* environment: string
* } $config
*/
private function loadService(array $config, ContainerBuilder $container): void
private function loadServiceParams(array $config, ContainerBuilder $container): void

Check warning on line 62 in src/DependencyInjection/OpenTelemetryExtension.php

View check run for this annotation

Codecov / codecov/patch

src/DependencyInjection/OpenTelemetryExtension.php#L62

Added line #L62 was not covered by tests
{
$container->setParameter('open_telemetry.service.namespace', $config['namespace']);
$container->setParameter('open_telemetry.service.name', $config['name']);
Expand Down Expand Up @@ -123,7 +127,7 @@ private function loadMonologHandlers(array $config, ContainerBuilder $container)
->setDefinition($handlerId, new ChildDefinition('open_telemetry.logs.monolog.handler'))
->setPublic(true)
->setArguments([
'$loggerProvider' => new Reference(sprintf('open_telemetry.logs.providers.%s', $handler['provider'])),
'$loggerProvider' => new Reference($handler['provider']),

Check warning on line 130 in src/DependencyInjection/OpenTelemetryExtension.php

View check run for this annotation

Codecov / codecov/patch

src/DependencyInjection/OpenTelemetryExtension.php#L130

Added line #L130 was not covered by tests
'$level' => Level::fromName(ucfirst($handler['level'])),
'$bubble' => $handler['bubble'],
]);
Expand Down

0 comments on commit eb490cf

Please sign in to comment.