Security update for permissions_by_term
[yaffs-website] / vendor / behat / behat / src / Behat / Testwork / ServiceContainer / Extension.php
1 <?php
2
3 /*
4  * This file is part of the Behat Testwork.
5  * (c) Konstantin Kudryashov <ever.zet@gmail.com>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 namespace Behat\Testwork\ServiceContainer;
12
13 use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
14 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
15 use Symfony\Component\DependencyInjection\ContainerBuilder;
16
17 /**
18  * Represents Testwork extension mechanism.
19  *
20  * Extensions are the core entities in Testwork. Almost all framework functionality in Testwork and its different
21  * implementations is provided through extensions.
22  *
23  * @author Konstantin Kudryashov <ever.zet@gmail.com>
24  */
25 interface Extension extends CompilerPassInterface
26 {
27     /**
28      * Returns the extension config key.
29      *
30      * @return string
31      */
32     public function getConfigKey();
33
34     /**
35      * Initializes other extensions.
36      *
37      * This method is called immediately after all extensions are activated but
38      * before any extension `configure()` method is called. This allows extensions
39      * to hook into the configuration of other extensions providing such an
40      * extension point.
41      *
42      * @param ExtensionManager $extensionManager
43      */
44     public function initialize(ExtensionManager $extensionManager);
45
46     /**
47      * Setups configuration for the extension.
48      *
49      * @param ArrayNodeDefinition $builder
50      */
51     public function configure(ArrayNodeDefinition $builder);
52
53     /**
54      * Loads extension services into temporary container.
55      *
56      * @param ContainerBuilder $container
57      * @param array            $config
58      */
59     public function load(ContainerBuilder $container, array $config);
60 }