2017-04-18 05:44:08 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Stripe;
|
|
|
|
|
|
|
|
|
|
/**
|
2021-01-03 23:37:44 +01:00
|
|
|
* Class SingletonApiResource.
|
2017-04-18 05:44:08 +02:00
|
|
|
*/
|
|
|
|
|
abstract class SingletonApiResource extends ApiResource
|
|
|
|
|
{
|
|
|
|
|
protected static function _singletonRetrieve($options = null)
|
|
|
|
|
{
|
|
|
|
|
$opts = Util\RequestOptions::parse($options);
|
|
|
|
|
$instance = new static(null, $opts);
|
|
|
|
|
$instance->refresh();
|
2021-01-03 23:37:44 +01:00
|
|
|
|
2017-04-18 05:44:08 +02:00
|
|
|
return $instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2021-01-03 23:37:44 +01:00
|
|
|
* @return string the endpoint associated with this singleton class
|
2017-04-18 05:44:08 +02:00
|
|
|
*/
|
|
|
|
|
public static function classUrl()
|
|
|
|
|
{
|
2019-05-03 02:22:27 +02:00
|
|
|
// Replace dots with slashes for namespaced resources, e.g. if the object's name is
|
|
|
|
|
// "foo.bar", then its URL will be "/v1/foo/bar".
|
2021-01-03 23:37:44 +01:00
|
|
|
$base = \str_replace('.', '/', static::OBJECT_NAME);
|
|
|
|
|
|
|
|
|
|
return "/v1/{$base}";
|
2017-04-18 05:44:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2021-01-03 23:37:44 +01:00
|
|
|
* @return string the endpoint associated with this singleton API resource
|
2017-04-18 05:44:08 +02:00
|
|
|
*/
|
|
|
|
|
public function instanceUrl()
|
|
|
|
|
{
|
|
|
|
|
return static::classUrl();
|
|
|
|
|
}
|
|
|
|
|
}
|