public function formatPhp($statement, $args)
{
array_walk_recursive($args, function (&$val) {
if ($val instanceof Statement) {
$val = new PhpLiteral($this->formatStatement($val));
} elseif (is_string($val) && substr($val, 0, 2) === '@@') {
// escaped text @@
$val = substr($val, 1);
} elseif (is_string($val) && substr($val, 0, 1) === '@' && strlen($val) > 1) {
// service reference
$name = substr($val, 1);
if ($name === ContainerBuilder::THIS_CONTAINER) {
$val = new PhpLiteral('$this');
} elseif ($name === $this->currentService) {
$val = new PhpLiteral('$service');
} else {
$val = new PhpLiteral($this->formatStatement(new Statement(['@' . ContainerBuilder::THIS_CONTAINER, 'getService'], [$name])));
}
}
});
return PhpHelpers::formatArgs($statement, $args);
}