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

contributte / forms-multiplier / 5574364510

pending completion
5574364510

push

github

f3l1x
Composer: update dev deps

239 of 321 relevant lines covered (74.45%)

10.95 hits per line

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

61.11
/src/DI/MultiplierExtension.php
1
<?php declare(strict_types = 1);
2

3
namespace Contributte\FormMultiplier\DI;
4

5
use Contributte\FormMultiplier\Latte\Extension\MultiplierExtension as LatteMultiplierExtension;
6
use Contributte\FormMultiplier\Multiplier;
7
use Nette\Bridges\ApplicationLatte\LatteFactory;
8
use Nette\DI\CompilerExtension;
9
use Nette\DI\Definitions\FactoryDefinition;
10
use Nette\DI\Definitions\Statement;
11
use Nette\DI\InvalidConfigurationException;
12
use Nette\PhpGenerator\ClassType;
13
use Nette\Schema\Expect;
14
use Nette\Schema\Schema;
15
use stdClass;
16

17
class MultiplierExtension extends CompilerExtension
18
{
19

20
        public function getConfigSchema(): Schema
21
        {
22
                return Expect::structure([
3✔
23
                        'name' => Expect::string()->default('addMultiplier'),
3✔
24
                ]);
3✔
25
        }
26

27
        public function beforeCompile(): void
28
        {
29
                $builder = $this->getContainerBuilder();
2✔
30
                $factory = $builder->getDefinitionByType(LatteFactory::class);
2✔
31

32
                if (!$factory instanceof FactoryDefinition) {
2✔
33
                        throw new InvalidConfigurationException(
×
34
                                sprintf(
×
35
                                        'latte.latteFactory service definition must be of type %s, not %s',
×
36
                                        FactoryDefinition::class,
×
37
                                        $factory::class
×
38
                                )
×
39
                        );
×
40
                }
41

42
                $resultDefinition = $factory->getResultDefinition();
2✔
43
                $resultDefinition->addSetup('addExtension', [new Statement(LatteMultiplierExtension::class)]);
2✔
44
        }
45

46
        public function afterCompile(ClassType $class): void
47
        {
48
                /** @var stdClass $config */
49
                $config = $this->getConfig();
2✔
50
                $init = $class->getMethods()['initialize'];
2✔
51
                $init->addBody(Multiplier::class . '::register(?);', [$config->name]);
2✔
52
        }
53

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