gpt4 book ai didi

symfony - 从服务获取 Symfony 基本 URL?

转载 作者:行者123 更新时间:2023-12-05 00:21:05 25 4
gpt4 key购买 nike

我有一个需要访问当前应用程序基本 URL 的服务(在 Twig View 中由 app.request.getBaseURL() 返回的内容)。目前,我的配置是这样的:

services:
WidgetModel:
class: AppBundle\Model\WidgetModel
scope: prototype
arguments: ['%widgets%']

因此,作为第二个参数,我想注入(inject)基本 URL。是否可以?如果没有,什么是适当的解决方案?

最佳答案

据我所知,没有内置的基本 url 服务。这实际上是一个危险信号,可能让您的组件依赖于它可能不是一个好主意。但我想不出一个很好的理由。

因此,通常情况下,只需注入(inject)请求对象。但这有它自己的问题,如下所述:http://symfony.com/blog/new-in-symfony-2-4-the-request-stack

相反,注入(inject) @request_stack 服务并从中提取 url:

class WidgetModel
{
public __construct($widgets,$requestStack)
{
$this->baseUrl = $requestStack->getCurrentRequest()->getBaseUrl();

如果您确实发现自己在多个服务中需要 baseUrl,那么您可以定义自己的工厂类型服务来生成它。但同样,这可能意味着您的设计需要重新考虑。

关于symfony - 从服务获取 Symfony 基本 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com