小编Nik*_*hev的帖子

symfony4在服务中使用.env配置变量

我正在使用一个不是特别为symfony(TNTsearch)制作的包,并且已经将我想要使用的所有函数放在我调用的服务中TNTsearchHelper.php.此服务需要一些变量,包括可以在.env文件中找到的变量.我目前在我的班级中定义和构建这些:

class TntSearchHelper
{
    public function __construct(EntityManagerInterface $em)
    {
        $this->em = $em;

        $config = [
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'databasename',
            'username'  => 'user',
            'password'  => 'pw',
            'storage'   => 'my/path/to/file',
            'charset'   => 'utf8',
            'collation' => 'utf8_general_ci',
        ];

        $this->config = $config;
    }
Run Code Online (Sandbox Code Playgroud)

我真正想要的是简单地使用.env文件中设置的数据库变量.有没有办法做到这一点?此服务未注册,services.yaml因为这不是autowire: true选项所必需的,所以我没有任何配置选项/文件用于我的服务,config并想知道我是否可以保持这种方式.

symfony symfony4

3
推荐指数
1
解决办法
1559
查看次数

Bundle 的 services.yaml 中的 Symfony 4 _instanceof

我有一个包含接口的包,Optimax\HealthCheckBundle\Service\HealthInterface 我需要为实现此接口的所有服务设置标签。我使用以下指令执行此操作:

_instanceof:
  Optimax\HealthCheckBundle\Service\HealthInterface:
    tags: ['health.service']
Run Code Online (Sandbox Code Playgroud)

当我将此指令放入config/services.yaml. 但是,如果我将此代码放入我的包的配置中(需要通过作曲家),vendor/optimax/health-check/src/Resources/config/services.yaml则它不起作用。services.yaml当我需要这个包到一个新项目时,我不想每次都复制粘贴这个指令。

如何将此指令移动到services.yaml我的 Bundle 目录中或至少移动到config/packages项目文件夹中的另一个文件中?

php service bundle symfony symfony4

1
推荐指数
2
解决办法
2048
查看次数

标签 统计

symfony ×2

symfony4 ×2

bundle ×1

php ×1

service ×1