Как создать URL-адрес абсолютных активов для запроса, не относящегося к http

С Symfony-2,7 asset3-й аргумент метода (логическое значение, указывающее, следует ли генерировать абсолютный URL), устарел.

Из источников:

@trigger_error('Generating absolute URLs with the Twig asset() function was deprecated in 2.7 and will be removed in 3.0. Please use absolute_url() instead.', E_USER_DEPRECATED);

Таким образом, официальный способ генерировать его совместимым с Symfony-3.0 способом стал:

{{ absolute_url(asset('some/asset.css')) }}

Проблема в том, что HttpFoundationExtension это обеспечивает absolute_url полагается на «стек запросов», который является пустым в случае не-http запроса.

Таким образом, он возвращает исходный путь без каких-либо преобразований:

    if (!$request = $this->requestStack->getMasterRequest()) {
return $path;
}

https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bridge/Twig/Extension/HttpFoundationExtension.php#L59

Таким образом, вопрос — как создать полный URL-адрес в CLI-приложении?

важный нота: http://symfony.com/doc/current/cookbook/console/sending_emails.html этот совет не актуален при использовании absolute_url помощник.

3

Решение

Попробуйте отправить фиктивный объект запроса в службу request_stack, а также настройте контекст запроса в файле parameters.yml, как указано в send_emails.html.

    $request = new Request();
// if you use locales
$request->setLocale("en");
// to be able to render twig asset absolute paths we have to inject dummy request
$container->enterScope('request');
$container->set('request', $request, 'request');
$container->get('request_stack')->push($request);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]