rex_formatter::custom PHP Method

custom() public static method

Formats a string by a custom callable.
public static custom ( string $value, callable | array $format ) : string
$value string Value
$format callable | array A callable or an array of a callable and additional params
return string
    public static function custom($value, $format)
    {
        if (!is_callable($format)) {
            if (!is_callable($format[0])) {
                throw new rex_exception('Unable to find callable ' . $format[0] . ' for custom format!');
            }
            $params = [];
            $params['subject'] = $value;
            if (is_array($format[1])) {
                $params = array_merge($format[1], $params);
            } else {
                $params['params'] = $format[1];
            }
            // $format ist in der Form
            // array(Name des Callables, Weitere Parameter)
            return call_user_func($format[0], $params);
        }
        return call_user_func($format, $value);
    }

Usage Example

コード例 #1
0
ファイル: formatter_test.php プロジェクト: staabm/redaxo
 public function testCustom()
 {
     $value = 77;
     $format = 'octdec';
     $this->assertEquals(63, rex_formatter::custom($value, $format));
     $format = [function ($params) {
         return $params['subject'] . ' ' . $params['some'];
     }, ['some' => 'more params']];
     $this->assertEquals('77 more params', rex_formatter::custom($value, $format));
 }