PluginProbe
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.11.3
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.11.3
4.7.4 4.7.5 4.7.3 4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 All 95 releases
cookiebot / addons / inc / Dependencies / DI / Definition / Helper / FactoryDefinitionHelper.php

FactoryDefinitionHelper.php in Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode 3.11.3, at addons/inc/Dependencies/DI/Definition/Helper/FactoryDefinitionHelper.php

73 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * PHP-DI
4 *
5 * @link http://php-di.org/
6 * @copyright Matthieu Napoli (http://mnapoli.fr/)
7 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
8 */
9
10 namespace Cybot\Dependencies\DI\Definition\Helper;
11
12 use Cybot\Dependencies\DI\Definition\DecoratorDefinition;
13 use Cybot\Dependencies\DI\Definition\FactoryDefinition;
14
15 /**
16 * Helps defining how to create an instance of a class using a factory (callable).
17 *
18 * @author Matthieu Napoli <[email protected]>
19 */
20 class FactoryDefinitionHelper implements DefinitionHelper
21 {
22 /**
23 * @var callable
24 */
25 private $factory;
26
27 /**
28 * @var string|null
29 */
30 private $scope;
31
32 /**
33 * @var bool
34 */
35 private $decorate;
36
37 /**
38 * @param callable $factory
39 * @param bool $decorate Is the factory decorating a previous definition?
40 */
41 public function __construct($factory, $decorate = false)
42 {
43 $this->factory = $factory;
44 $this->decorate = $decorate;
45 }
46
47 /**
48 * Defines the scope of the entry.
49 *
50 * @param string $scope
51 *
52 * @return FactoryDefinitionHelper
53 */
54 public function scope($scope)
55 {
56 $this->scope = $scope;
57 return $this;
58 }
59
60 /**
61 * @param string $entryName Container entry name
62 * @return FactoryDefinition
63 */
64 public function getDefinition($entryName)
65 {
66 if ($this->decorate) {
67 return new DecoratorDefinition($entryName, $this->factory, $this->scope);
68 }
69
70 return new FactoryDefinition($entryName, $this->factory, $this->scope);
71 }
72 }
73