symfony - 缓存驱动配置
问题描述
我目前正在将 Symfony 与多个实体管理器一起使用。我按照他们的例子做了这个. 在开发和测试环境中一切正常。连接已建立,我可以随心所欲地获取、插入等数据。但后来我遇到了一个问题,我似乎无法在我的产品环境中建立与我的数据库的任何连接:当我尝试登录时,它会打印一些标准错误消息,例如“由于某些系统问题,您无法登录”。所以我检查了日志:没有。也许我需要在产品中调整我的详细程度?我找不到获得某种实际错误消息的方法。由于这个原因,我开始比较不同环境的配置。在这三种环境下,学说存在差异:测试和开发不使用任何文件来覆盖默认学说配置文件中指定的某些设置。产品可以。而且因为我在我的学说配置文件中更改了很多东西,所以问题就埋在那里似乎是合理的。我删除了 prod 环境的附加原则配置文件,它再次按预期工作。
这是我的标准学说配置文件(dontrine.yaml):
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
default_connection: admin
connections:
admin:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_ADMIN_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
mail:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_MAIL_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
host:
driver: 'pdo_mysql'
server_version: '5.7'
url: '%env(DB_HOST_URL)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
orm:
default_entity_manager: admin
auto_generate_proxy_classes: '%kernel.debug%'
entity_managers:
admin:
connection: admin
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
Admin:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Admin'
prefix: 'App\Entity\Admin'
alias: Admin
mail:
connection: mail
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Mail:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Mail'
prefix: 'App\Entity\Mail'
alias: Mail
host:
connection: host
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Host:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Host'
prefix: 'App\Entity\Host'
alias: Host
这是我在 prod 环境中的附加教义.yaml:
doctrine:
orm:
metadata_cache_driver:
type: service
id: doctrine.system_cache_provider
query_cache_driver:
type: service
id: doctrine.system_cache_provider
result_cache_driver:
type: service
id: doctrine.result_cache_provider
services:
doctrine.result_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.result_cache_pool'
doctrine.system_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.system_cache_pool'
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
prod 环境的配置文件对应的是默认配置文件。我尝试为每个实体管理器添加一次所有这些附加配置,就像我在默认配置中所做的那样(对于我的多个数据库)。但我没有工作。我实际上并不知道这个配置负责什么,但我想它被添加到默认 prod 环境是有原因的。我不只是想删除它。
我现在的问题是:
- 如何正确扩展附加配置?
- 这种配置有什么意义?
解决方案
推荐阅读
- python-behave - 如何在 Behave 的特征场景中保持常量
- java - 如何使用 SASL_SSL 连接 Apache Kafka 设置 Spring Cloud Kafka 项目?
- python - Creating new columns from the values of another column
- javascript - 如何以角度突出显示文本输入占位符中的文本?
- angular - 从角度的发布请求中获取数据
- react-native - 反应原生 | 'TouchableOpacity' 的最佳替代品是什么?
- r - r 计算数据框中多个变量的综合得分和 cronbach 的 alpha 并将它们添加为列
- java - How to Split a logical expression on operators as delimiters, while keeping them in the result?
- jquery - Jquery Validation Plugin 在 Chrome 中工作,但在 Mozilla 中不工作
- php - How to show all files from DB horizontaly using php?