���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /proc/self/root/usr/share/php/Williamdes/MariaDBMySQLKBS/ |
<?php declare(strict_types = 1); namespace Williamdes\MariaDBMySQLKBS; use \stdClass; class Search { /** * Loaded data * * @var mixed */ public static $data; /** * Data is loaded * * @var bool */ public static $loaded = false; public const ANY = -1; public const MYSQL = 1; public const MARIADB = 2; public const DS = DIRECTORY_SEPARATOR; /** * The directory where the data is located * * @var string */ public static $DATA_DIR = '/usr/share/php-williamdes-mariadb-mysql-kbs/dist/'; /** * Load data from disk * * @return void * @throws KBException */ public static function loadData(): void { if (Search::$loaded === false) { $filePath = Search::$DATA_DIR."merged-ultraslim.json"; $contents = @file_get_contents($filePath); if ($contents === false) { throw new KBException("$filePath does not exist !"); } Search::$data = json_decode($contents); Search::$loaded = true; } } /** * Load test data * * @param SlimData $slimData The SlimData object * @return void */ public static function loadTestData(SlimData $slimData): void { Search::$data = json_decode((string) json_encode($slimData)); Search::$loaded = true; } /** * get the first link to doc available * * @param string $name Name of variable * @param int $type (optional) Type of link Search::MYSQL/Search::MARIADB/Search::ANY * @return string * @throws KBException */ public static function getByName(string $name, int $type = Search::ANY): string { self::loadData(); $kbEntries = self::getVariable($name); if (isset($kbEntries->a)) { foreach ($kbEntries->a as $kbEntry) { if ($type === Search::ANY) { return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; } elseif ($type === Search::MYSQL) { if ($kbEntry->t === Search::MYSQL) { return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; } } elseif ($type === Search::MARIADB) { if ($kbEntry->t === Search::MARIADB) { return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; } } } } throw new KBException("$name does not exist for this type of documentation !"); } /** * Get a variable * * @param string $name Name of variable * @return stdClass * @throws KBException */ public static function getVariable(string $name): stdClass { self::loadData(); if (isset(Search::$data->vars->{$name})) { return Search::$data->vars->{$name}; } else { throw new KBException("$name does not exist !"); } } /** * get the type of the variable * * @param string $name Name of variable * @return string * @throws KBException */ public static function getVariableType(string $name): string { self::loadData(); $kbEntry = self::getVariable($name); if (isset($kbEntry->t)) { return Search::$data->varTypes->{$kbEntry->t}; } else { throw new KBException("$name does have a known type !"); } } /** * Return the list of static variables * * @return array<int,string> */ public static function getStaticVariables(): array { return self::getVariablesWithDynamic(false); } /** * Return the list of dynamic variables * * @return array<int,string> */ public static function getDynamicVariables(): array { return self::getVariablesWithDynamic(true); } /** * Return the list of variables having dynamic = $dynamic * * @param bool $dynamic dynamic=true/dynamic=false * @return array<int,string> */ public static function getVariablesWithDynamic(bool $dynamic): array { self::loadData(); $staticVars = array(); foreach (Search::$data->vars as $name => $var) { if (isset($var->d)) { if ($var->d === $dynamic) { $staticVars[] = $name; } } } return $staticVars; } }