Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/share/php/PhpMyAdmin/SqlParser/Tools/ |
Upload File : |
<?php declare(strict_types=1); namespace PhpMyAdmin\SqlParser\Tools; use ReflectionClass; use ReflectionException; use Zumba\JsonSerializer\JsonSerializer; use function in_array; /** * Used for .out files generation */ class CustomJsonSerializer extends JsonSerializer { public const SKIP_PROPERTIES = [ 'ALLOWED_KEYWORDS', 'GROUP_OPTIONS', 'END_OPTIONS', 'KEYWORD_PARSERS', 'STATEMENT_PARSERS', 'KEYWORD_NAME_INDICATORS', 'OPERATOR_NAME_INDICATORS', 'DEFAULT_DELIMITER', 'PARSER_METHODS', 'OPTIONS', 'CLAUSES', 'DB_OPTIONS', 'DELIMITERS', 'JOINS', 'FIELDS_OPTIONS', 'LINES_OPTIONS', 'TRIGGER_OPTIONS', 'FUNC_OPTIONS', 'TABLE_OPTIONS', 'FIELD_OPTIONS', 'DATA_TYPE_OPTIONS', 'REFERENCES_OPTIONS', 'KEY_OPTIONS', 'VIEW_OPTIONS', 'EVENT_OPTIONS', 'USER_OPTIONS', 'asciiMap', ]; /** * Extract the object data * * @param object $value * @param ReflectionClass $ref * @param string[] $properties * * @return array<string,mixed> */ protected function extractObjectData($value, $ref, $properties) { $data = []; foreach ($properties as $property) { if (in_array($property, self::SKIP_PROPERTIES, true)) { continue; } try { $propRef = $ref->getProperty($property); $propRef->setAccessible(true); $data[$property] = $propRef->getValue($value); } catch (ReflectionException $e) { $data[$property] = $value->$property; } } return $data; } }