PluginProbe
The Innovative Form Builder – IvyForms / 0.3
The Innovative Form Builder – IvyForms v0.3
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / vendor / php-di / php-di / src / Definition / FactoryDefinition.php

FactoryDefinition.php in The Innovative Form Builder – IvyForms 0.3, at backend/vendor/php-di/php-di/src/Definition/FactoryDefinition.php

80 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 declare(strict_types=1);
4
5 namespace 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