PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / support / Manager.php
independent-analytics / vendor / illuminate / support Last commit date
Facades 2 years ago Testing 2 years ago Traits 2 years ago AggregateServiceProvider.php 2 years ago Carbon.php 2 years ago Composer.php 2 years ago ConfigurationUrlParser.php 2 years ago DateFactory.php 2 years ago Env.php 2 years ago Fluent.php 2 years ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 2 years ago Manager.php 2 years ago MessageBag.php 2 years ago MultipleInstanceManager.php 2 years ago NamespacedItemResolver.php 2 years ago Optional.php 2 years ago Pluralizer.php 2 years ago ProcessUtils.php 2 years ago Reflector.php 2 years ago ServiceProvider.php 2 years ago Str.php 2 years ago Stringable.php 2 years ago Timebox.php 2 years ago ValidatedInput.php 2 years ago ViewErrorBag.php 2 years ago helpers.php 2 years ago
Manager.php
170 lines
1 <?php
2
3 namespace IAWP_SCOPED\Illuminate\Support;
4
5 use Closure;
6 use IAWP_SCOPED\Illuminate\Contracts\Container\Container;
7 use InvalidArgumentException;
8 /** @internal */
9 abstract class Manager
10 {
11 /**
12 * The container instance.
13 *
14 * @var \Illuminate\Contracts\Container\Container
15 */
16 protected $container;
17 /**
18 * The configuration repository instance.
19 *
20 * @var \Illuminate\Contracts\Config\Repository
21 */
22 protected $config;
23 /**
24 * The registered custom driver creators.
25 *
26 * @var array
27 */
28 protected $customCreators = [];
29 /**
30 * The array of created "drivers".
31 *
32 * @var array
33 */
34 protected $drivers = [];
35 /**
36 * Create a new manager instance.
37 *
38 * @param \Illuminate\Contracts\Container\Container $container
39 * @return void
40 */
41 public function __construct(Container $container)
42 {
43 $this->container = $container;
44 $this->config = $container->make('config');
45 }
46 /**
47 * Get the default driver name.
48 *
49 * @return string
50 */
51 public abstract function getDefaultDriver();
52 /**
53 * Get a driver instance.
54 *
55 * @param string|null $driver
56 * @return mixed
57 *
58 * @throws \InvalidArgumentException
59 */
60 public function driver($driver = null)
61 {
62 $driver = $driver ?: $this->getDefaultDriver();
63 if (\is_null($driver)) {
64 throw new InvalidArgumentException(\sprintf('Unable to resolve NULL driver for [%s].', static::class));
65 }
66 // If the given driver has not been created before, we will create the instances
67 // here and cache it so we can return it next time very quickly. If there is
68 // already a driver created by this name, we'll just return that instance.
69 if (!isset($this->drivers[$driver])) {
70 $this->drivers[$driver] = $this->createDriver($driver);
71 }
72 return $this->drivers[$driver];
73 }
74 /**
75 * Create a new driver instance.
76 *
77 * @param string $driver
78 * @return mixed
79 *
80 * @throws \InvalidArgumentException
81 */
82 protected function createDriver($driver)
83 {
84 // First, we will determine if a custom driver creator exists for the given driver and
85 // if it does not we will check for a creator method for the driver. Custom creator
86 // callbacks allow developers to build their own "drivers" easily using Closures.
87 if (isset($this->customCreators[$driver])) {
88 return $this->callCustomCreator($driver);
89 } else {
90 $method = 'create' . Str::studly($driver) . 'Driver';
91 if (\method_exists($this, $method)) {
92 return $this->{$method}();
93 }
94 }
95 throw new InvalidArgumentException("Driver [{$driver}] not supported.");
96 }
97 /**
98 * Call a custom driver creator.
99 *
100 * @param string $driver
101 * @return mixed
102 */
103 protected function callCustomCreator($driver)
104 {
105 return $this->customCreators[$driver]($this->container);
106 }
107 /**
108 * Register a custom driver creator Closure.
109 *
110 * @param string $driver
111 * @param \Closure $callback
112 * @return $this
113 */
114 public function extend($driver, Closure $callback)
115 {
116 $this->customCreators[$driver] = $callback;
117 return $this;
118 }
119 /**
120 * Get all of the created "drivers".
121 *
122 * @return array
123 */
124 public function getDrivers()
125 {
126 return $this->drivers;
127 }
128 /**
129 * Get the container instance used by the manager.
130 *
131 * @return \Illuminate\Contracts\Container\Container
132 */
133 public function getContainer()
134 {
135 return $this->container;
136 }
137 /**
138 * Set the container instance used by the manager.
139 *
140 * @param \Illuminate\Contracts\Container\Container $container
141 * @return $this
142 */
143 public function setContainer(Container $container)
144 {
145 $this->container = $container;
146 return $this;
147 }
148 /**
149 * Forget all of the resolved driver instances.
150 *
151 * @return $this
152 */
153 public function forgetDrivers()
154 {
155 $this->drivers = [];
156 return $this;
157 }
158 /**
159 * Dynamically call the default driver instance.
160 *
161 * @param string $method
162 * @param array $parameters
163 * @return mixed
164 */
165 public function __call($method, $parameters)
166 {
167 return $this->driver()->{$method}(...$parameters);
168 }
169 }
170