REF - Use function rather than static variable to return SQLFunction params
[civicrm-core.git] / Civi / Api4 / Query / SqlFunctionCOUNT.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 namespace Civi\Api4\Query;
13
14 /**
15 * Sql function
16 */
17 class SqlFunctionCOUNT extends SqlFunction {
18
19 protected static $category = self::CATEGORY_AGGREGATE;
20
21 protected static function params(): array {
22 return [
23 [
24 'prefix' => ['', 'DISTINCT', 'ALL'],
25 'max_expr' => 1,
26 'must_be' => ['SqlField', 'SqlWild'],
27 'cant_be' => [],
28 ],
29 ];
30 }
31
32 /**
33 * Reformat result as integer
34 *
35 * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues
36 * @param string $value
37 * @param string $dataType
38 * @return string|array
39 */
40 public function formatOutputValue($value, &$dataType) {
41 // Count is always an integer
42 $dataType = 'Integer';
43 return (int) $value;
44 }
45
46 /**
47 * @return string
48 */
49 public static function getTitle(): string {
50 return ts('Count');
51 }
52
53 }