eZ\Bundle\EzPublishCoreBundle\Fragment\DecoratedFragmentRenderer::render PHP Метод

render() публичный Метод

Renders a URI and returns the Response content.
public render ( string | Symfony\Component\HttpKernel\Controller\ControllerReference $uri, Request $request, array $options = [] ) : Response
$uri string | Symfony\Component\HttpKernel\Controller\ControllerReference A URI as a string or a ControllerReference instance
$request Symfony\Component\HttpFoundation\Request A Request instance
$options array An array of options
Результат Response A Response instance
    public function render($uri, Request $request, array $options = array())
    {
        if ($uri instanceof ControllerReference && $request->attributes->has('siteaccess')) {
            // Serialize the siteaccess to get it back after.
            // @see eZ\Publish\Core\MVC\Symfony\EventListener\SiteAccessMatchListener
            $uri->attributes['serialized_siteaccess'] = serialize($request->attributes->get('siteaccess'));
        }
        return $this->innerRenderer->render($uri, $request, $options);
    }

Usage Example

 public function testRendererControllerReference()
 {
     $reference = new ControllerReference('FooBundle:bar:baz');
     $siteAccess = new SiteAccess('test', 'test');
     $request = new Request();
     $request->attributes->set('siteaccess', $siteAccess);
     $options = array('foo' => 'bar');
     $expectedReturn = '/_fragment?foo=bar';
     $this->innerRenderer->expects($this->once())->method('render')->with($reference, $request, $options)->will($this->returnValue($expectedReturn));
     $renderer = new DecoratedFragmentRenderer($this->innerRenderer);
     $this->assertSame($expectedReturn, $renderer->render($reference, $request, $options));
     $this->assertTrue(isset($reference->attributes['serialized_siteaccess']));
     $this->assertSame(serialize($siteAccess), $reference->attributes['serialized_siteaccess']);
 }