我必须为每个环境复制所有配置文件

时间:2020-08-17 10:42:01

标签: php symfony yaml

我尝试在 config / *目录中添加一些配置。 我将使用一个非常简单的示例来说明问题,但请记住,任何服务的每个 .yaml 配置文件都会出现此问题。我无法在配置文件之间进行继承。

所以在 services.yaml 中,我有以下代码:

#config/services.yaml
parameters:
    app.debug: 0
    smtp.user: ''
    app.locale: '%kernel.default_locale%'
    app.product.number_per_page: 20
    container.dumper.inline_factories: true
services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
        bind:
            $locale: '%kernel.default_locale%'
            $product_per_page: '%app.product.number_per_page%'

然后我尝试将$product_per_page访问我的控制器:

#src/Controller/myController.php
public function listProduct(int $product_per_page){
   dump($product_per_page);
   die();
}

执行此代码时,它会给我以下错误:

无法解析参数$ product_per_page的 “ App \ Controller \ ProductController :: listproduct()”,也许您忘记了 将控制器注册为服务,或者错过使用 “ controller.service_arguments”?

所以我必须复制此配置文件(config/services.yaml),然后将其粘贴到config / services_dev.yaml, services_prod.yaml, services_test.yaml

然后它开始工作,但这根本不合适...

因为我必须对每个配置文件都执行此操作...因此,每次更新任何配置时,我都会复制并粘贴到每个环境中。

当然,我已经尝试过cache:clearcomposer update,但是没有任何作用。

我期望Symfony按照解释here的方式读取文件,但对我来说不起作用。

我已经尝试创建另一个Symfony项目,现在该项目正在运行。但是我想了解什么是错的?我做过什么事情,导致即使在更新Symfony之后,即使在更新作曲家之后,甚至在清除缓存后,也无法得到正确的错误。

除了创建一个新的Symfony项目,您可以在其中复制旧文件中的文件,我无法相信。

0 个答案:

没有答案