2

我一直在尝试将缓存/缓存捆绑配方安装到我的symfony4 flex-configured项目中,但无济于事。我执行:

composer require cache/cache-bundle

这就是我在外壳上得到的:

在 shell 上捕获配方缓存捆绑安装结果

安装 cache-bundle 会在 下生成一个 cache.yml 文件config/packages/cache.yml,其默认内容为:

cache:
    session:
       enabled: "%env(bool:SESSION_CACHE_ENABLED)%"
       service_id: "cache.provider.default"
       use_tagging: true
       ttl: 7200
    router:
       enabled: "%env(bool:ROUTER_CACHE_ENABLED)%"
       service_id: "cache.provider.default"
       ttl: 86400
    logging:
       enabled: "%env(bool:APP_DEBUG)%"
       logger: "logger"
       level: "info"

有问题的行是第一个“启用”的行。出于某种原因,Symfony 或作曲家不喜欢这样%env(bool:SESSION_CACHE_ENABLED)%并返回该错误消息:

路径“cache.session.enabled”的类型无效。预期为布尔值,但得到字符串。

.envSESSION_CACHE_ENABLED 是作曲家在这样的块中引入项目文件中的值。

###> cache/cache-bundle ###
SESSION_CACHE_ENABLED=true
ROUTER_CACHE_ENABLED=false
###< cache/cache-bundle ###

然后,问题是其他人是否“遭受”了这个问题并找到了修复或解决方法来使这个配置工作。我的目标是在我的模拟项目中使用此依赖项将数组缓存在内存中,以将它们用作假数据库系统。

我想就此提出一个问题,但由于我不确定这是 Simfony 问题还是只是配方中的问题,所以我更愿意先在这里问。

为了完整起见,这里是我的项目中已经存在的当前依赖项列表。

"require": {
    "php": "^7.1.3",
    "easycorp/easy-log-handler": "^1.0",
    "friendsofsymfony/rest-bundle": "^2.3",
    "hermes/bridge/common": "dev-master",
    "hermes/common": "dev-master",
    "jms/serializer": "^1.10",
    "jms/serializer-bundle": "^2.3",
    "ramsey/uuid": "^3.7",
    "sensio/framework-extra-bundle": "^5.1",
    "symfony/cache": "^4.0",
    "symfony/console": "^4.0",
    "symfony/framework-bundle": "^4.0",
    "symfony/http-foundation": "^4.0",
    "symfony/monolog-bundle": "^3.1",
    "symfony/stopwatch": "^4.0",
    "symfony/web-server-bundle": "^4.0",
    "symfony/yaml": "^4.0"
},
"require-dev": {
    "symfony/flex": "^1.0",
    "symfony/dotenv": "^4.0"
}

我已经看到有关 dotenv 文件中布尔值问题的问题,但恐怕这个问题没有任何结论。

4

1 回答 1

-2

您是否尝试过去掉“%env(bool:SESSION_CACHE_ENABLED)%”周围的引号?

于 2018-01-26T13:19:45.083 回答