Code Duplication    Length = 27-27 lines in 2 locations

src/DependencyInjection/ZenstruckCacheExtension.php 2 locations

@@ 38-64 (lines=27) @@
35
     * @param string           $httpClient
36
     * @param ContainerBuilder $container
37
     */
38
    private function configureHttpClient($httpClient, ContainerBuilder $container)
39
    {
40
        if (!class_exists($httpClient)) {
41
            // is a service
42
            $container->setAlias('zenstruck_cache.http_client', $httpClient);
43
44
            return;
45
        }
46
47
        $r = new \ReflectionClass($httpClient);
48
49
        if (!$r->implementsInterface('Http\Client\HttpClient')) {
50
            throw new InvalidConfigurationException('HttpClient class must implement "Http\Client\HttpClient".');
51
        }
52
53
        if ($r->isAbstract()) {
54
            throw new InvalidConfigurationException('HttpClient class must not be abstract.');
55
        }
56
57
        if (null !== $r->getConstructor() && 0 !== $r->getConstructor()->getNumberOfRequiredParameters()) {
58
            throw new InvalidConfigurationException('HttpClient class must not have required constructor arguments.');
59
        }
60
61
        $httpClient = new Definition($httpClient);
62
        $httpClient->setPublic(false);
63
        $container->setDefinition('zenstruck_cache.http_client', $httpClient);
64
    }
65
66
    /**
67
     * @param string           $messageFactory
@@ 70-96 (lines=27) @@
67
     * @param string           $messageFactory
68
     * @param ContainerBuilder $container
69
     */
70
    private function configureMessageFactory($messageFactory, ContainerBuilder $container)
71
    {
72
        if (!class_exists($messageFactory)) {
73
            // is a service
74
            $container->setAlias('zenstruck_cache.message_factory', $messageFactory);
75
76
            return;
77
        }
78
79
        $r = new \ReflectionClass($messageFactory);
80
81
        if (!$r->implementsInterface('Http\Message\MessageFactory')) {
82
            throw new InvalidConfigurationException('MessageFactory class must implement "Http\Message\MessageFactory".');
83
        }
84
85
        if ($r->isAbstract()) {
86
            throw new InvalidConfigurationException('MessageFactory class must not be abstract.');
87
        }
88
89
        if (null !== $r->getConstructor() && 0 !== $r->getConstructor()->getNumberOfRequiredParameters()) {
90
            throw new InvalidConfigurationException('MessageFactory class must not have required constructor arguments.');
91
        }
92
93
        $messageFactory = new Definition($messageFactory);
94
        $messageFactory->setPublic(false);
95
        $container->setDefinition('zenstruck_cache.message_factory', $messageFactory);
96
    }
97
}
98