|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace JMS\SerializerBundle\ExpressionLanguage; |
|
4
|
|
|
|
|
5
|
|
|
use Symfony\Component\ExpressionLanguage\ExpressionFunction; |
|
6
|
|
|
use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; |
|
7
|
|
|
|
|
8
|
|
|
class BasicSerializerFunctionsProvider implements ExpressionFunctionProviderInterface |
|
9
|
|
|
{ |
|
10
|
11 |
|
public function getFunctions() |
|
11
|
|
|
{ |
|
12
|
|
|
return [ |
|
13
|
|
|
new ExpressionFunction('service', function ($arg) { |
|
14
|
1 |
|
return sprintf('$this->get(%s)', $arg); |
|
15
|
|
|
}, function (array $variables, $value) { |
|
16
|
1 |
|
return $variables['container']->get($value); |
|
17
|
11 |
|
}), |
|
18
|
|
|
new ExpressionFunction('parameter', function ($arg) { |
|
19
|
1 |
|
return sprintf('$this->getParameter(%s)', $arg); |
|
20
|
|
|
}, function (array $variables, $value) { |
|
21
|
1 |
|
return $variables['container']->getParameter($value); |
|
22
|
11 |
|
}), |
|
23
|
|
|
new ExpressionFunction('is_granted', function ($attribute, $object = null) { |
|
24
|
1 |
|
return sprintf('call_user_func_array(array($this->get(\'security.authorization_checker\'), \'isGranted\'), array(%s, %s))', $attribute, $object); |
|
25
|
11 |
|
}, function (array $variables, $attribute, $object = null) { |
|
26
|
1 |
|
return call_user_func_array( |
|
27
|
1 |
|
array($variables['container']->get('security.authorization_checker'), 'isGranted'), |
|
28
|
1 |
|
[$attribute, $object] |
|
29
|
1 |
|
); |
|
30
|
11 |
|
}), |
|
31
|
11 |
|
]; |
|
32
|
|
|
} |
|
33
|
|
|
} |
|
34
|
|
|
|