1; } static function normalize($definition, $definitionKey=null): array { self::_normalize($definition, $definitionKey); self::_ensure_nature($definition, "scalar"); return $definition; } function __construct($definition=null, $definitionKey=null, bool $normalize=true) { if ($definition === null) $definition = static::SCHEMA; if ($normalize) { $definition = self::normalize($definition, $definitionKey); $this->_definition = $definition; self::_ensure_type($definition); self::_ensure_schema_instances($definition); } $this->definition = $definition; } function isScalar(?ScalarSchema &$schema=null): bool { $schema = $this; return true; } protected function newWrapper(): ScalarWrapper { return new ScalarWrapper($this); } function getWrapper(&$value=null, $valueKey=null, ?Wrapper &$wrapper=null): ScalarWrapper { if (!($wrapper instanceof ScalarWrapper)) $wrapper = $this->newWrapper(); return $wrapper->reset($value, $valueKey); } ############################################################################# # key & properties const _PROPERTY_PKEYS = [ "analyzerFunc" => "analyzer_func", "extractorFunc" => "extractor_func", "parserFunc" => "parser_func", "normalizerFunc" => "normalizer_func", "formatterFunc" => "formatter_func", "nature" => ["", 0], ]; }