PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 5.6.1
Defender Security – Malware Scanner, Login Security & Firewall v5.6.1
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / lib / packages / DI / Definition / FactoryDefinition.php

FactoryDefinition.php in Defender Security – Malware Scanner, Login Security & Firewall 5.6.1, at lib/packages/DI/Definition/FactoryDefinition.php

80 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WPMU_DEV\Defender\Vendor\DI\Definition;
6
7 /**
8 * Definition of a value or class with a factory.
9 *
10 * @author Matthieu Napoli <[email protected]>
11 */
12 class FactoryDefinition implements Definition
13 {
14 /**
15 * Entry name.
16 * @var string
17 */
18 private $name;
19
20 /**
21 * Callable that returns the value.
22 * @var callable
23 */
24 private $factory;
25
26 /**
27 * Factory parameters.
28 * @var mixed[]
29 */
30 private $parameters = [];
31
32 /**
33 * @param string $name Entry name
34 * @param callable $factory Callable that returns the value associated to the entry name.
35 * @param array $parameters Parameters to be passed to the callable
36 */
37 public function __construct(string $name, $factory, array $parameters = [])
38 {
39 $this->name = $name;
40 $this->factory = $factory;
41 $this->parameters = $parameters;
42 }
43
44 public function getName() : string
45 {
46 return $this->name;
47 }
48
49 public function setName(string $name)
50 {
51 $this->name = $name;
52 }
53
54 /**
55 * @return callable Callable that returns the value associated to the entry name.
56 */
57 public function getCallable()
58 {
59 return $this->factory;
60 }
61
62 /**
63 * @return array Array containing the parameters to be passed to the callable, indexed by name.
64 */
65 public function getParameters() : array
66 {
67 return $this->parameters;
68 }
69
70 public function replaceNestedDefinitions(callable $replacer)
71 {
72 $this->parameters = array_map($replacer, $this->parameters);
73 }
74
75 public function __toString()
76 {
77 return 'Factory';
78 }
79 }
80