63 lines
2.3 KiB
PHP
63 lines
2.3 KiB
PHP
|
<?php
|
||
|
namespace nur\b\coll;
|
||
|
|
||
|
use nur\A;
|
||
|
use nur\php\Autogen;
|
||
|
|
||
|
trait TAutoconstsDynamic {
|
||
|
static function _AUTOGEN_SCHEMA(): array {
|
||
|
return static::SCHEMA;
|
||
|
}
|
||
|
static function _AUTOGEN_GETTERS(): array {
|
||
|
return Autogen::auto_getters(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_SETTERS(): array {
|
||
|
return Autogen::auto_setters(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_DELETERS(): array {
|
||
|
return Autogen::auto_deleters(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_CI_GETTERS(): array {
|
||
|
return Autogen::auto_ci_getters(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_CI_SETTERS(): array {
|
||
|
return Autogen::auto_ci_setters(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_GETTERS_METHODS(): array {
|
||
|
return Autogen::auto_getters_methods(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_SETTERS_METHODS(): array {
|
||
|
return Autogen::auto_setters_methods(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_DELETERS_METHODS(): array {
|
||
|
return Autogen::auto_deleters_methods(static::_AUTOGEN_SCHEMA());
|
||
|
}
|
||
|
static function _AUTOGEN_CONSTS(?array $params=null): array {
|
||
|
$setters = A::get($params, "setters", true);
|
||
|
$deleters = A::get($params, "deleters", false);
|
||
|
$ci = A::get($params, "ci", false);
|
||
|
$autogenConsts = [
|
||
|
"_AUTOGEN_LITERALS" => [
|
||
|
[static::class, "self::class"],
|
||
|
],
|
||
|
];
|
||
|
if (A::get($params, "properties", true)) {
|
||
|
$autogenConsts["_AUTO_GETTERS"] = [static::class, "_AUTOGEN_GETTERS"];
|
||
|
if ($setters) $autogenConsts["_AUTO_SETTERS"] = [static::class, "_AUTOGEN_SETTERS"];
|
||
|
if ($deleters) $autogenConsts["_AUTO_DELETERS"] = [static::class, "_AUTOGEN_DELETERS"];
|
||
|
if ($ci) {
|
||
|
$autogenConsts["_AUTO_CI_GETTERS"] = [static::class, "_AUTOGEN_CI_GETTERS"];
|
||
|
if ($setters) $autogenConsts["_AUTO_CI_SETTERS"] = [static::class, "_AUTOGEN_CI_SETTERS"];
|
||
|
}
|
||
|
}
|
||
|
if (A::get($params, "methods", true)) {
|
||
|
$autogenMethods = [];
|
||
|
$autogenMethods[] = [static::class, "_AUTOGEN_GETTERS_METHODS"];
|
||
|
if ($setters) $autogenMethods[] = [static::class, "_AUTOGEN_SETTERS_METHODS"];
|
||
|
if ($deleters) $autogenMethods[] = [static::class, "_AUTOGEN_DELETERS_METHODS"];
|
||
|
$autogenConsts["_AUTOGEN_METHODS"] = $autogenMethods;
|
||
|
}
|
||
|
return $autogenConsts;
|
||
|
}
|
||
|
}
|