mirror of
https://github.com/itflow-org/itflow
synced 2026-03-01 03:14:52 +00:00
Removed unused libs in the vendor folder and moved stripe to the plugins folder then elininated the vendor folder all together, updated all the stripe links
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Stripe\Service;
|
||||
|
||||
/**
|
||||
* Abstract base class for all service factories used to expose service
|
||||
* instances through {@link \Stripe\StripeClient}.
|
||||
*
|
||||
* Service factories serve two purposes:
|
||||
*
|
||||
* 1. Expose properties for all services through the `__get()` magic method.
|
||||
* 2. Lazily initialize each service instance the first time the property for
|
||||
* a given service is used.
|
||||
*/
|
||||
abstract class AbstractServiceFactory
|
||||
{
|
||||
/** @var \Stripe\StripeClientInterface */
|
||||
private $client;
|
||||
|
||||
/** @var array<string, AbstractService|AbstractServiceFactory> */
|
||||
private $services;
|
||||
|
||||
/**
|
||||
* @param \Stripe\StripeClientInterface $client
|
||||
*/
|
||||
public function __construct($client)
|
||||
{
|
||||
$this->client = $client;
|
||||
$this->services = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return null|string
|
||||
*/
|
||||
abstract protected function getServiceClass($name);
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return null|AbstractService|AbstractServiceFactory
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
return $this->getService($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return null|AbstractService|AbstractServiceFactory
|
||||
*/
|
||||
public function getService($name)
|
||||
{
|
||||
$serviceClass = $this->getServiceClass($name);
|
||||
if (null !== $serviceClass) {
|
||||
if (!\array_key_exists($name, $this->services)) {
|
||||
$this->services[$name] = new $serviceClass($this->client);
|
||||
}
|
||||
|
||||
return $this->services[$name];
|
||||
}
|
||||
|
||||
\trigger_error('Undefined property: ' . static::class . '::$' . $name);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user