为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Symfony 配置中定义一些 PHP 常量?

如何在 Symfony 配置中定义一些 PHP 常量?

PHP
慕侠2389804 2023-05-26 14:18:30
这是我的第一篇文章,所以我会尽量说清楚所以我需要在 Symfony 配置中定义一些常量(我猜是在 .yaml 文件中)我知道我可以定义它们 throwpublic const MY_CONST但这不是我想要的。我想这就是我需要的(第二部分,我没有使用抽象控制器,因为我不在控制器中)https://symfony.com/doc/current/configuration.html#accessing-configuration-parameters但我就是无法让它工作。任何人都可以通过给我一个例子或其他方式来帮助我吗?多谢你们。
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您描述的参数可以在定义为例如的配置中使用;


parameters:

    the_answer: 42

然后,您可以在进一步的配置中使用这些值(例如,请参见下文)。或者,如果您想在控制器中处理这些值,您可以(不再推荐)使用$this->getParameter('the_answer')来获取值。


绑定参数(推荐):

这种方法将绑定值,然后您可以通过引用参数在控制器函数/服务中获取(自动神奇地注入)这些值。


这些值的范围可以从简单的标量值到服务、.env 变量、php 常量以及配置可以解析的所有其他内容。


# config/services.yaml

services:

    _defaults:

        bind:

            string $helloWorld: 'Hello world!'  # simple string

            int $theAnswer: '%the_answer%'      # reference an already defined parameter.

            string $apiKey: '%env(REMOTE_API)%' # env variable.

然后当我们做类似的事情时,这些会被注入到服务/控制器函数中:


public function hello(string $apiKey, int $theAnswer, string $helloWorld) {

    // do things with $apiKey, $theAnswer and $helloWorld

}

可以在 symfony 文档中找到更多详细信息和示例https://symfony.com/doc/current/service_container.html#binding-arguments-by-name-or-type


注入服务(替代)

您也可以使用 arguments 将其直接注入到定义的服务中。


# config/services.yaml

services:

    # explicitly configure the service

    App\Updates\SiteUpdateManager:

        arguments:

            $adminEmail: 'manager@example.com'


查看完整回答
反对 回复 2023-05-26
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信