nur-sery/nur_src/b/coll/TArrayMdDynamic.php

28 lines
757 B
PHP

<?php
namespace nur\b\coll;
use nur\data\types\md_utils;
use nur\data\types\Metadata;
/**
* Trait TArrayMdDynamic: à utiliser avec {@link TAutoconstsDynamic}
*/
trait TArrayMdDynamic {
protected static function _ensure_md(?Metadata &$md, ?array $schema, ?string $cache_key=null): ?Metadata {
if ($schema === null) return null;
return md_utils::ensure_md($md, $schema);
}
protected static function _ensure_md_func(?Metadata &$md, ?callable $get_md, ?string $cache_key=null): ?Metadata {
if ($get_md === null) return null;
return md_utils::ensure_md_func($md, $get_md);
}
/** @var Metadata */
private static $md;
protected function md(): ?Metadata {
return self::_ensure_md(self::$md, self::_AUTOGEN_SCHEMA());
}
}