PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 5.7.0
Defender Security – Malware Scanner, Login Security & Firewall v5.7.0
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.7.0, at lib/packages/DI/Definition/FactoryDefinition.php

79 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 */
17 private string $name;
18
19 /**
20 * Callable that returns the value.
21 * @var callable
22 */
23 private $factory;
24
25 /**
26 * Factory parameters.
27 * @var mixed[]
28 */
29 private array $parameters;
30
31 /**
32 * @param string $name Entry name
33 * @param callable|array|string $factory Callable that returns the value associated to the entry name.
34 * @param array $parameters Parameters to be passed to the callable
35 */
36 public function __construct(string $name, callable|array|string $factory, array $parameters = [])
37 {
38 $this->name = $name;
39 $this->factory = $factory;
40 $this->parameters = $parameters;
41 }
42
43 public function getName() : string
44 {
45 return $this->name;
46 }
47
48 public function setName(string $name) : void
49 {
50 $this->name = $name;
51 }
52
53 /**
54 * @return callable|array|string Callable that returns the value associated to the entry name.
55 */
56 public function getCallable() : callable|array|string
57 {
58 return $this->factory;
59 }
60
61 /**
62 * @return array Array containing the parameters to be passed to the callable, indexed by name.
63 */
64 public function getParameters() : array
65 {
66 return $this->parameters;
67 }
68
69 public function replaceNestedDefinitions(callable $replacer) : void
70 {
71 $this->parameters = array_map($replacer, $this->parameters);
72 }
73
74 public function __toString() : string
75 {
76 return 'Factory';
77 }
78 }
79