public function generate(ControllerReference
$controller, Request
$request = null, bool
$absolute = false, bool
$strict = true, bool
$sign = true
): string
{ if (null ===
$request && (null ===
$this->requestStack || null ===
$request =
$this->requestStack->
getCurrentRequest())) { throw new \
LogicException('Generating a fragment URL can only be done when handling a Request.'
);
} if ($sign && null ===
$this->signer
) { throw new \
LogicException('You must use a URI when using the ESI rendering strategy or set a URL signer.'
);
} if ($strict) { $this->
checkNonScalar($controller->attributes
);
} // We need to forward the current _format and _locale values as we don't have
// a proper routing pattern to do the job for us.
// This makes things inconsistent if you switch from rendering a controller
// to rendering a route if the route pattern does not contain the special
// _format and _locale placeholders.
if (!
isset($controller->attributes
['_format'
])) { $controller->attributes
['_format'
] =
$request->
getRequestFormat();
} if (!
isset($controller->attributes
['_locale'
])) {