• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

fractalzombie / frzb-dependency-injection / 7325061485

25 Dec 2023 11:51PM UTC coverage: 84.36%. Remained the same
7325061485

push

github

fractalzombie
[DependencyInjection] Update functional library with breaking changes

28 of 29 new or added lines in 9 files covered. (96.55%)

21 existing lines in 8 files now uncovered.

178 of 211 relevant lines covered (84.36%)

13.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.89
/Compiler/RegisterAsDeprecatedAttributesPass.php
1
<?php
2

3
declare(strict_types=1);
4

5
/**
6
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
7
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
9
 *
10
 * Copyright (c) 2023 Mykhailo Shtanko fractalzombie@gmail.com
11
 *
12
 * For the full copyright and license information, please view the LICENSE.MD
13
 * file that was distributed with this source code.
14
 */
15

16
namespace FRZB\Component\DependencyInjection\Compiler;
17

18
use Fp\Collections\ArrayList;
19
use FRZB\Component\DependencyInjection\Attribute\AsDeprecated;
20
use FRZB\Component\DependencyInjection\Attribute\AsService;
21
use FRZB\Component\DependencyInjection\Helper\DefinitionHelper;
22
use FRZB\Component\DependencyInjection\Helper\EnvironmentHelper;
23
use Symfony\Component\DependencyInjection\ContainerBuilder;
24
use Symfony\Component\DependencyInjection\Definition;
25

26
/**
27
 * @internal
28
 *
29
 * Register #[AsDeprecated] attribute on definition that is autoconfigured
30
 *
31
 * @author Mykhailo Shtanko <fractalzombie@gmail.com>
32
 */
33
final class RegisterAsDeprecatedAttributesPass extends AbstractRegisterAttributePass
34
{
35
    public function __construct()
36
    {
37
        parent::__construct(AsDeprecated::class);
6✔
38
    }
39

40
    public function register(ContainerBuilder $container, \ReflectionClass $reflectionClass, AsDeprecated $attribute): void
41
    {
42
        if (!EnvironmentHelper::isPermittedEnvironment($container, $reflectionClass)) {
6✔
UNCOV
43
            return;
×
44
        }
45

46
        ArrayList::collect($reflectionClass->getAttributes(AsService::class, \ReflectionAttribute::IS_INSTANCEOF))
6✔
47
            ->map(static fn (\ReflectionAttribute $reflectionAttribute) => $reflectionAttribute->newInstance())
6✔
48
            ->map(static fn (AsService $asService) => $container->getDefinition(DefinitionHelper::getServiceId($container, $reflectionClass, $asService->id)))
6✔
49
            ->appended($container->getDefinition($reflectionClass->getName()))
6✔
50
            ->tap(static fn (Definition $definition) => $definition->setDeprecated($attribute->package, $attribute->version, $attribute->message))
6✔
51
        ;
6✔
52
    }
53
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc