| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613 |
- <?php
- /**
- * Configuration
- * PHP version 8.1
- *
- * @category Class
- * @package WikipaliApi
- * @author OpenAPI Generator team
- * @link https://openapi-generator.tech
- */
- /**
- * MINT API
- *
- * International Academy Of Pali Tipitaka(国际巴利三藏学院) 由 `php openapi/scripts/generate.php` 依据 api-v13 的路由与控制器源码生成。 响应统一封装为 `{ok, message, data}`;`ok=false` 时 `message` 为错误信息。
- *
- * The version of the OpenAPI document: 2026.9.28
- * Generated by: https://openapi-generator.tech
- * Generator version: 7.25.0
- */
- /**
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
- namespace WikipaliApi;
- /**
- * Configuration Class Doc Comment
- * PHP version 8.1
- *
- * @category Class
- * @package WikipaliApi
- * @author OpenAPI Generator team
- * @link https://openapi-generator.tech
- */
- class Configuration
- {
- public const BOOLEAN_FORMAT_INT = 'int';
- public const BOOLEAN_FORMAT_STRING = 'string';
- /**
- * @var Configuration
- */
- private static $defaultConfiguration;
- /**
- * Associate array to store API key(s)
- *
- * @var string[]
- */
- protected $apiKeys = [];
- /**
- * Associate array to store API prefix (e.g. Bearer)
- *
- * @var string[]
- */
- protected $apiKeyPrefixes = [];
- /**
- * Access token for OAuth/Bearer authentication
- *
- * @var string
- */
- protected $accessToken = '';
- /**
- * Boolean format for query string
- *
- * @var string
- */
- protected $booleanFormatForQueryString = self::BOOLEAN_FORMAT_INT;
- /**
- * Username for HTTP basic authentication
- *
- * @var string
- */
- protected $username = '';
- /**
- * Password for HTTP basic authentication
- *
- * @var string
- */
- protected $password = '';
- /**
- * The host
- *
- * @var string
- */
- protected $host = '/api';
- /**
- * User agent of the HTTP request, set to "OpenAPI-Generator/{version}/PHP" by default
- *
- * @var string
- */
- protected $userAgent = 'OpenAPI-Generator/1.0.0/PHP';
- /**
- * Debug switch (default set to false)
- *
- * @var bool
- */
- protected $debug = false;
- /**
- * Debug file location (log to STDOUT by default)
- *
- * @var string
- */
- protected $debugFile = 'php://output';
- /**
- * Debug file location (log to STDOUT by default)
- *
- * @var string
- */
- protected $tempFolderPath;
- /**
- * Path to a certificate file, for mTLS
- *
- * @var string
- */
- protected $certFile;
- /**
- * Path to a key file, for mTLS
- *
- * @var string
- */
- protected $keyFile;
- /**
- * Constructor
- */
- public function __construct()
- {
- $this->tempFolderPath = sys_get_temp_dir();
- }
- /**
- * Sets API key
- *
- * @param string $apiKeyIdentifier API key identifier (authentication scheme)
- * @param string $key API key or token
- *
- * @return $this
- */
- public function setApiKey($apiKeyIdentifier, $key)
- {
- $this->apiKeys[$apiKeyIdentifier] = $key;
- return $this;
- }
- /**
- * Gets API key
- *
- * @param string $apiKeyIdentifier API key identifier (authentication scheme)
- *
- * @return null|string API key or token
- */
- public function getApiKey($apiKeyIdentifier)
- {
- return isset($this->apiKeys[$apiKeyIdentifier]) ? $this->apiKeys[$apiKeyIdentifier] : null;
- }
- /**
- * Sets the prefix for API key (e.g. Bearer)
- *
- * @param string $apiKeyIdentifier API key identifier (authentication scheme)
- * @param string $prefix API key prefix, e.g. Bearer
- *
- * @return $this
- */
- public function setApiKeyPrefix($apiKeyIdentifier, $prefix)
- {
- $this->apiKeyPrefixes[$apiKeyIdentifier] = $prefix;
- return $this;
- }
- /**
- * Gets API key prefix
- *
- * @param string $apiKeyIdentifier API key identifier (authentication scheme)
- *
- * @return null|string
- */
- public function getApiKeyPrefix($apiKeyIdentifier)
- {
- return isset($this->apiKeyPrefixes[$apiKeyIdentifier]) ? $this->apiKeyPrefixes[$apiKeyIdentifier] : null;
- }
- /**
- * Sets the access token for OAuth
- *
- * @param string $accessToken Token for OAuth
- *
- * @return $this
- */
- public function setAccessToken($accessToken)
- {
- $this->accessToken = $accessToken;
- return $this;
- }
- /**
- * Gets the access token for OAuth
- *
- * @return string Access token for OAuth
- */
- public function getAccessToken()
- {
- return $this->accessToken;
- }
- /**
- * Sets boolean format for query string.
- *
- * @param string $booleanFormat Boolean format for query string
- *
- * @return $this
- */
- public function setBooleanFormatForQueryString(string $booleanFormat)
- {
- $this->booleanFormatForQueryString = $booleanFormat;
- return $this;
- }
- /**
- * Gets boolean format for query string.
- *
- * @return string Boolean format for query string
- */
- public function getBooleanFormatForQueryString(): string
- {
- return $this->booleanFormatForQueryString;
- }
- /**
- * Sets the username for HTTP basic authentication
- *
- * @param string $username Username for HTTP basic authentication
- *
- * @return $this
- */
- public function setUsername($username)
- {
- $this->username = $username;
- return $this;
- }
- /**
- * Gets the username for HTTP basic authentication
- *
- * @return string Username for HTTP basic authentication
- */
- public function getUsername()
- {
- return $this->username;
- }
- /**
- * Sets the password for HTTP basic authentication
- *
- * @param string $password Password for HTTP basic authentication
- *
- * @return $this
- */
- public function setPassword($password)
- {
- $this->password = $password;
- return $this;
- }
- /**
- * Gets the password for HTTP basic authentication
- *
- * @return string Password for HTTP basic authentication
- */
- public function getPassword()
- {
- return $this->password;
- }
- /**
- * Sets the host
- *
- * @param string $host Host
- *
- * @return $this
- */
- public function setHost($host)
- {
- $this->host = $host;
- return $this;
- }
- /**
- * Gets the host
- *
- * @return string Host
- */
- public function getHost()
- {
- return $this->host;
- }
- /**
- * Sets the user agent of the api client
- *
- * @param string $userAgent the user agent of the api client
- *
- * @throws \InvalidArgumentException
- * @return $this
- */
- public function setUserAgent($userAgent)
- {
- if (!is_string($userAgent)) {
- throw new \InvalidArgumentException('User-agent must be a string.');
- }
- $this->userAgent = $userAgent;
- return $this;
- }
- /**
- * Gets the user agent of the api client
- *
- * @return string user agent
- */
- public function getUserAgent()
- {
- return $this->userAgent;
- }
- /**
- * Sets debug flag
- *
- * @param bool $debug Debug flag
- *
- * @return $this
- */
- public function setDebug($debug)
- {
- $this->debug = $debug;
- return $this;
- }
- /**
- * Gets the debug flag
- *
- * @return bool
- */
- public function getDebug()
- {
- return $this->debug;
- }
- /**
- * Sets the debug file
- *
- * @param string $debugFile Debug file
- *
- * @return $this
- */
- public function setDebugFile($debugFile)
- {
- $this->debugFile = $debugFile;
- return $this;
- }
- /**
- * Gets the debug file
- *
- * @return string
- */
- public function getDebugFile()
- {
- return $this->debugFile;
- }
- /**
- * Sets the temp folder path
- *
- * @param string $tempFolderPath Temp folder path
- *
- * @return $this
- */
- public function setTempFolderPath($tempFolderPath)
- {
- $this->tempFolderPath = $tempFolderPath;
- return $this;
- }
- /**
- * Gets the temp folder path
- *
- * @return string Temp folder path
- */
- public function getTempFolderPath()
- {
- return $this->tempFolderPath;
- }
- /**
- * Sets the certificate file path, for mTLS
- *
- * @return $this
- */
- public function setCertFile($certFile)
- {
- $this->certFile = $certFile;
- return $this;
- }
- /**
- * Gets the certificate file path, for mTLS
- *
- * @return string Certificate file path
- */
- public function getCertFile()
- {
- return $this->certFile;
- }
- /**
- * Sets the certificate key path, for mTLS
- *
- * @return $this
- */
- public function setKeyFile($keyFile)
- {
- $this->keyFile = $keyFile;
- return $this;
- }
- /**
- * Gets the certificate key path, for mTLS
- *
- * @return string Certificate key path
- */
- public function getKeyFile()
- {
- return $this->keyFile;
- }
-
- /**
- * Gets the default configuration instance
- *
- * @return Configuration
- */
- public static function getDefaultConfiguration()
- {
- if (self::$defaultConfiguration === null) {
- self::$defaultConfiguration = new Configuration();
- }
- return self::$defaultConfiguration;
- }
- /**
- * Sets the default configuration instance
- *
- * @param Configuration $config An instance of the Configuration Object
- *
- * @return void
- */
- public static function setDefaultConfiguration(Configuration $config)
- {
- self::$defaultConfiguration = $config;
- }
- /**
- * Gets the essential information for debugging
- *
- * @return string The report for debugging
- */
- public static function toDebugReport()
- {
- $report = 'PHP SDK (WikipaliApi) Debug Report:' . PHP_EOL;
- $report .= ' OS: ' . php_uname() . PHP_EOL;
- $report .= ' PHP Version: ' . PHP_VERSION . PHP_EOL;
- $report .= ' The version of the OpenAPI document: 2026.9.28' . PHP_EOL;
- $report .= ' SDK Package Version: 1.0.0' . PHP_EOL;
- $report .= ' Temp Folder Path: ' . self::getDefaultConfiguration()->getTempFolderPath() . PHP_EOL;
- return $report;
- }
- /**
- * Get API key (with prefix if set)
- *
- * @param string $apiKeyIdentifier name of apikey
- *
- * @return null|string API key with the prefix
- */
- public function getApiKeyWithPrefix($apiKeyIdentifier)
- {
- $prefix = $this->getApiKeyPrefix($apiKeyIdentifier);
- $apiKey = $this->getApiKey($apiKeyIdentifier);
- if ($apiKey === null) {
- return null;
- }
- if ($prefix === null) {
- $keyWithPrefix = $apiKey;
- } else {
- $keyWithPrefix = $prefix . ' ' . $apiKey;
- }
- return $keyWithPrefix;
- }
- /**
- * Returns an array of host settings
- *
- * @return array an array of host settings
- */
- public function getHostSettings()
- {
- return [
- [
- "url" => "/api",
- "description" => "同源(预览页里 Try it out 走 vite 代理,避免跨域)",
- ],
- [
- "url" => "http://127.0.0.1:8000/api",
- "description" => "本地开发(直连,浏览器里会被 CORS 挡住)",
- ],
- [
- "url" => "https://staging.wikipali.org/api",
- "description" => "测试",
- ],
- [
- "url" => "https://www.wikipali.org/api",
- "description" => "生产",
- ],
- [
- "url" => "https://next.wikipali.org/api",
- "description" => "生产预览",
- ],
- [
- "url" => "https://www.wikipali.cc/api",
- "description" => "生产(中国)",
- ],
- [
- "url" => "https://next.wikipali.cc/api",
- "description" => "生产预览(中国)",
- ]
- ];
- }
- /**
- * Returns URL based on host settings, index and variables
- *
- * @param array $hostSettings array of host settings, generated from getHostSettings() or equivalent from the API clients
- * @param int $hostIndex index of the host settings
- * @param array|null $variables hash of variable and the corresponding value (optional)
- * @return string URL based on host settings
- */
- public static function getHostString(array $hostSettings, $hostIndex, ?array $variables = null)
- {
- if (null === $variables) {
- $variables = [];
- }
- // check array index out of bound
- if ($hostIndex < 0 || $hostIndex >= count($hostSettings)) {
- throw new \InvalidArgumentException("Invalid index $hostIndex when selecting the host. Must be less than ".count($hostSettings));
- }
- $host = $hostSettings[$hostIndex];
- $url = $host["url"];
- // go through variable and assign a value
- foreach ($host["variables"] ?? [] as $name => $variable) {
- if (array_key_exists($name, $variables)) { // check to see if it's in the variables provided by the user
- if (!isset($variable['enum_values']) || in_array($variables[$name], $variable["enum_values"], true)) { // check to see if the value is in the enum
- $url = str_replace("{".$name."}", $variables[$name], $url);
- } else {
- throw new \InvalidArgumentException("The variable `$name` in the host URL has invalid value ".$variables[$name].". Must be ".join(',', $variable["enum_values"]).".");
- }
- } else {
- // use default value
- $url = str_replace("{".$name."}", $variable["default_value"], $url);
- }
- }
- return $url;
- }
- /**
- * Returns URL based on the index and variables
- *
- * @param int $index index of the host settings
- * @param array|null $variables hash of variable and the corresponding value (optional)
- * @return string URL based on host settings
- */
- public function getHostFromSettings($index, $variables = null)
- {
- return self::getHostString($this->getHostSettings(), $index, $variables);
- }
- }
|