PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.2
Independent Analytics – WordPress Analytics Plugin v2.15.2
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
Exceptions 2 weeks ago Facades 2 weeks ago Testing 2 weeks ago Traits 2 weeks ago AggregateServiceProvider.php 2 years ago Benchmark.php 2 weeks ago Carbon.php 2 weeks ago Composer.php 2 weeks ago ConfigurationUrlParser.php 2 weeks ago DateFactory.php 2 weeks ago Env.php 2 weeks ago Fluent.php 2 weeks ago HigherOrderTapProxy.php 2 years ago HtmlString.php 2 years ago InteractsWithTime.php 2 years ago Js.php 2 weeks ago Lottery.php 2 weeks ago Manager.php 2 years ago MessageBag.php 2 weeks ago MultipleInstanceManager.php 2 weeks ago NamespacedItemResolver.php 2 weeks ago Optional.php 2 weeks ago Pluralizer.php 2 weeks ago ProcessUtils.php 2 weeks ago Reflector.php 2 weeks ago ServiceProvider.php 2 years ago Str.php 2 weeks ago Stringable.php 2 weeks ago Timebox.php 2 weeks ago ValidatedInput.php 2 weeks ago ViewErrorBag.php 2 weeks ago helpers.php 2 weeks ago
Manager.php
170 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Support;
4
5 use Closure;
6 use IAWPSCOPED\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