aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php')
-rw-r--r--srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php
new file mode 100644
index 0000000..50b25cc
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php
@@ -0,0 +1,50 @@
+<?php
+declare(strict_types = 1);
+namespace Williamdes\MariaDBMySQLKBS\Test;
+
+use \Swaggest\JsonSchema\RemoteRefProvider;
+
+class RefProvider implements RemoteRefProvider
+{
+
+ /**
+ * Preloaded urn schemas
+ *
+ * @var \stdClass[]
+ */
+ private $urnSchemas = [];
+
+ /**
+ * Create a new RefProvider instance
+ */
+ public function __construct()
+ {
+ $files = glob(__DIR__ . "/../schemas/*.json");
+ if ($files === false) {
+ return;
+ } else {
+ foreach ($files as $filename) {
+ $schema = json_decode((string) file_get_contents($filename));
+ if (isset($schema) && isset($schema->{'$id'}) && $schema !== null) {
+ $this->urnSchemas[$schema->{'$id'}] = $schema;
+ }
+ }
+ }
+ }
+
+ /**
+ * @param string $url The file url
+ * @return \stdClass|false json_decode of $url resource content
+ */
+ public function getSchemaData($url)
+ {
+ if (isset($this->urnSchemas[$url])) {// Handle urn: urls
+ return $this->urnSchemas[$url];
+ } elseif (is_file($url)) {// Handle file
+ return json_decode((string) file_get_contents($url));
+ } else {// Handle URL
+ return json_decode((string) file_get_contents(rawurldecode($url)));
+ }
+ }
+
+}