Completed
Push — 1.0.x ( 54cff8...fde7fe )
by Antonio
06:25
created

DrupalExtension::configure()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 37
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 37
c 0
b 0
f 0
rs 8.8571
cc 1
eloc 33
nc 1
nop 1
1
<?php
2
3
namespace NuvoleWeb\Drupal\DrupalExtension\ServiceContainer;
4
5
use Symfony\Component\DependencyInjection\ContainerBuilder;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
8
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
9
use Drupal\DrupalExtension\ServiceContainer\DrupalExtension as OriginalDrupalExtension;
10
11
/**
12
 * Class DrupalExtension.
13
 *
14
 * @package NuvoleWeb\Drupal\DrupalExtension\ServiceContainer
15
 */
16
class DrupalExtension extends OriginalDrupalExtension {
17
18
  /**
19
   * {@inheritdoc}
20
   */
21
  public function load(ContainerBuilder $container, array $config) {
22
    parent::load($container, $config);
23
24
    // Search for services.yml in following paths in order to perform overrides.
25
    $paths[] = __DIR__ . '/../../..';
0 ignored issues
show
Coding Style Comprehensibility introduced by
$paths was never initialized. Although not strictly required by PHP, it is generally a good practice to add $paths = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
26
    $paths[] = $container->getParameter('paths.base');
27
    $container_overrides = new ContainerBuilder();
28
    $loader = new YamlFileLoader($container_overrides, new FileLocator($paths));
29
    $loader->load('services.yml');
30
    $container->merge($container_overrides);
31
32
    $this->loadContextInitializer($container);
33
  }
34
35
  /**
36
   * Load context initializer.
37
   *
38
   * @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
39
   *    Service container instance.
40
   */
41
  private function loadContextInitializer(ContainerBuilder $container) {
42
    // Set current service container instance for service container initializer.
43
    $definition = $container->getDefinition('drupal.behat.context_initializer.service_container');
44
    $definition->addArgument($container);
45
  }
46
47
  /**
48
   * {@inheritdoc}
49
   */
50
  public function configure(ArrayNodeDefinition $builder) {
51
    parent::configure($builder);
52
53
    // @codingStandardsIgnoreStart
54
    $builder->
55
      children()->
56
        arrayNode('text')->
57
          info(
58
            'Text strings, such as Log out or the Username field can be altered via behat.yml if they vary from the default values.' . PHP_EOL
59
            . '  log_out: "Sign out"' . PHP_EOL
60
            . '  log_in: "Sign in"' . PHP_EOL
61
            . '  password_field: "Enter your password"' . PHP_EOL
62
            . '  username_field: "Nickname"' . PHP_EOL
63
            . '  node_submit_label: "Save"'
64
          )->
65
          addDefaultsIfNotSet()->
66
            children()->
67
              scalarNode('log_in')->
68
                defaultValue('Log in')->
69
              end()->
70
              scalarNode('log_out')->
71
                defaultValue('Log out')->
72
              end()->
73
              scalarNode('password_field')->
74
                defaultValue('Password')->
75
              end()->
76
              scalarNode('username_field')->
77
                defaultValue('Username')->
78
              end()->
79
              scalarNode('node_submit_label')->
80
                defaultValue('Save')->
81
              end()->
82
          end()->
83
        end()->
84
      end();
85
    // @codingStandardsIgnoreEnd
86
  }
87
88
}
89