X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Civi%2FApi4%2FQuery%2FSqlFunction.php;h=dbc245f7bfc40dfd5e3ed0c5e6dbc74a47614b75;hb=e6ac8b253e7c321dc2f5ced965de48b616c20275;hp=e10bbcb23b0637f7a92aac75ef0050c9751b377b;hpb=23310ac6aef2c1f27e2149c86cb50f10bd57c973;p=civicrm-core.git diff --git a/Civi/Api4/Query/SqlFunction.php b/Civi/Api4/Query/SqlFunction.php index e10bbcb23b..dbc245f7bf 100644 --- a/Civi/Api4/Query/SqlFunction.php +++ b/Civi/Api4/Query/SqlFunction.php @@ -22,6 +22,19 @@ abstract class SqlFunction extends SqlExpression { protected $args = []; + /** + * Used for categorizing functions in the UI + * + * @var string + */ + protected static $category; + + const CATEGORY_AGGREGATE = 'aggregate', + CATEGORY_COMPARISON = 'comparison', + CATEGORY_DATE = 'date', + CATEGORY_MATH = 'math', + CATEGORY_STRING = 'string'; + /** * Parse the argument string into an array of function arguments */ @@ -161,10 +174,9 @@ abstract class SqlFunction extends SqlExpression { * Get the name of this sql function. * @return string */ - public function getName(): string { - $className = get_class($this); - $pos = strrpos($className, 'SqlFunction'); - return substr($className, $pos + 11); + public static function getName(): string { + $className = static::class; + return substr($className, strrpos($className, 'SqlFunction') + 11); } /** @@ -187,4 +199,16 @@ abstract class SqlFunction extends SqlExpression { return $params; } + /** + * @return string + */ + public static function getCategory(): string { + return static::$category; + } + + /** + * @return string + */ + abstract public static function getTitle(): string; + }