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

php-bug-catcher / reporter-bundle / 10794662990

10 Sep 2024 02:30PM UTC coverage: 64.179%. Remained the same
10794662990

push

github

tito10047
updated README.md

86 of 134 relevant lines covered (64.18%)

6.65 hits per line

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

77.78
/src/DependencyInjection/BugCatcherReporterExtension.php
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Jozef Môstka
5
 * Date: 23. 5. 2024
6
 * Time: 12:31
7
 */
8
namespace BugCatcher\Reporter\DependencyInjection;
9

10
use BugCatcher\Reporter\Event\WriteStackTraceListener;
11
use BugCatcher\Reporter\Service\BugCatcherInterface;
12
use BugCatcher\Reporter\Writer\DoctrineWriter;
13
use BugCatcher\Reporter\Writer\HttpWriter;
14
use Exception;
15
use Symfony\Bridge\Doctrine\ManagerRegistry;
16
use Symfony\Component\Config\FileLocator;
17
use Symfony\Component\DependencyInjection\ContainerBuilder;
18
use Symfony\Component\DependencyInjection\Extension\Extension;
19
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
20
use Symfony\Component\DependencyInjection\Reference;
21
use Symfony\Component\EventDispatcher\EventDispatcher;
22
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
23
use Symfony\Component\HttpFoundation\RequestStack;
24
use Symfony\Component\Uid\Factory\UuidFactory;
25
use Symfony\Contracts\HttpClient\HttpClientInterface;
26

27
class BugCatcherReporterExtension extends Extension {
28

29
        public function load(array $configs, ContainerBuilder $container) {
30
                $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config'));
15✔
31
                $loader->load('services.xml');
15✔
32

33
                $configuration = $this->getConfiguration($configs, $container);
15✔
34
                $config        = $this->processConfiguration($configuration, $configs);
15✔
35

36
                if ($config['writer'] !== null) {
15✔
37
                        $writer = $config['writer'];
15✔
38
                } elseif ($config['http_client'] !== null) {
×
39
                        $writer = 'bug_catcher.writer.http_writer';
×
40

41
                        $doctrineWriter = $container->getDefinition('bug_catcher.writer.http_writer');
×
42
                        $doctrineWriter->setArgument(0, new Reference($config['http_client']));
×
43
                } else {
44
                        throw new Exception('You must set writer or http_client');
×
45
                }
46
                $container->setAlias('bug_catcher.writer', $writer);
15✔
47

48
                $bugCatcher = $container->getDefinition('bug_catcher');
15✔
49
                $bugCatcher->setArgument(0, new Reference('bug_catcher.writer'));
15✔
50
                $bugCatcher->setArgument(1, new Reference($config['uri_cather']));
15✔
51
        $bugCatcher->setArgument(2, new Reference(EventDispatcherInterface::class));
15✔
52
        $bugCatcher->setArgument(3, $config['project']);
15✔
53
                $bugCatcher->setArgument(4, $config['min_level']);
15✔
54

55

56

57
                $monologHandler = $container->getDefinition('bug_catcher.handler');
15✔
58
                $monologHandler->setArgument(0, new Reference(BugCatcherInterface::class));
15✔
59
                $monologHandler->setArgument(1, $config['stack_trace']);
15✔
60
                $monologHandler->setArgument(2, $config['min_level']);
15✔
61
        $monologHandler = $container->getDefinition(WriteStackTraceListener::class);
15✔
62
        $monologHandler->setArgument(0, $config['stack_trace']);
15✔
63

64
                if (!class_exists(RequestStack::class)) {
15✔
65
                        $container->removeDefinition('bug_catcher.url_catcher.console_uri_catcher');
×
66
                }
67

68
        }
69

70
        public function getAlias(): string {
71
                return 'bug_catcher';
15✔
72
        }
73

74

75
}
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

© 2026 Coveralls, Inc