Пример #1
0
 private function formatPhp($statement, $args, $self = NULL)
 {
     $that = $this;
     array_walk_recursive($args, function (&$val) use($self, $that) {
         if ($val instanceof Statement) {
             $val = new PhpLiteral($that->formatStatement($val, $self));
         } elseif (!is_string($val)) {
             return;
         } elseif ($val === '@' . ContainerBuilder::THIS_CONTAINER) {
             $val = new PhpLiteral('$this');
         } elseif ($service = $that->getServiceName($val, $self)) {
             if ($service === $self) {
                 $val = new PhpLiteral('$service');
             } elseif ($that->definitions[$service]->shared) {
                 $val = new PhpLiteral('$this->' . PhpHelpers::formatMember($service));
             } else {
                 $val = new PhpLiteral('$this->' . PhpHelpers::formatMember('create' . ucfirst($service)) . '()');
             }
         }
     });
     return PhpHelpers::formatArgs($statement, $args);
 }