PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.4.2
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.4.2
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
betterdocs / includes / Dependencies / DI / Definition / FactoryDefinition.php

FactoryDefinition.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 3.4.2, at includes/Dependencies/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 WPDeveloper\BetterDocs\Dependencies\DI\Definition;
6
7 /**
8 * Definition of a value or class with a factory.
9 *
10 * @author Matthieu Napoli <matthieu@mnapoli.fr>
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