28 lines
		
	
	
		
			757 B
		
	
	
	
		
			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());
 | 
						|
  }
 | 
						|
}
 |