PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.24.0
GiveWP – Donation Plugin and Fundraising Platform v2.24.0
4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / stellarwp / container-contract / examples / php-di / Container.php
give / vendor / stellarwp / container-contract / examples / php-di Last commit date
Container.php 3 years ago
Container.php
88 lines
1 <?php
2
3 namespace Your\Namespace;
4
5 use StellarWP\ContainerContract\ContainerInterface;
6
7 // If you are including PHP-DI container using Strauss (recommended), then:
8 use Your\Namespace\DI\Container as PHPDIContainer;
9
10 // If you are including the PHP-DI container directly, then you'd want to do:
11 //use DI\Container as PHPDIContainer;
12
13 class Container implements ContainerInterface {
14 protected $container;
15 protected $singletons = [];
16
17 /**
18 * Container constructor.
19 */
20 public function __construct() {
21 $this->container = new PHPDIContainer();
22 }
23
24 /**
25 * @inheritDoc
26 */
27 public function bind( string $id, $implementation = null ) {
28 return $this->container->set( $id, $implementation );
29 }
30
31 /**
32 * @inheritDoc
33 */
34 public function get( string $id ) {
35 return $this->container->get( $id );
36 }
37
38 /**
39 * @inheritDoc
40 */
41 public function has( string $id ) {
42 return $this->container->has( $id );
43 }
44
45 /**
46 * Build an entry of the container by its name.
47 *
48 * This method behave like get() except resolves the entry again every time.
49 * For example if the entry is a class then a new instance will be created each time.
50 *
51 * This method makes the container behave like a factory.
52 *
53 * @template T
54 *
55 * @param string|class-string<T> $name Entry name or a class name.
56 * @param array $parameters Optional parameters to use to build the entry. Use this to force
57 * specific parameters to specific values. Parameters not defined in this
58 * array will be resolved using the container.
59 *
60 * @return mixed|T
61 * @throws InvalidArgumentException The name parameter must be of type string.
62 * @throws DependencyException Error while resolving the entry.
63 * @throws NotFoundException No entry found for the given name.
64 */
65 public function make( string $id, array $parameters = [] ) {
66 if ( ! empty( $this->singletons[ $id ] ) ) {
67 return $this->container->get( $id );
68 }
69
70 return $this->container->make( $id, $parameters );
71 }
72
73 /**
74 * @inheritDoc
75 */
76 public function singleton( string $id, $implementation = null ) {
77 $this->singletons[ $id ] = true;
78 return $this->container->set( $id, $implementation );
79 }
80
81 /**
82 * Defer all other calls to the container object.
83 */
84 public function __call( $name, $args ) {
85 return $this->container->{$name}( ...$args );
86 }
87 }
88