教义。在dbal配置中注入其他参数

时间:2017-05-26 06:32:59

标签: php mysql symfony doctrine-orm

我有MySQL集群,主服务器和4个从服务器。 基于Symfony3的站点,Doctrine用作ORM和DBAL。 我对Doctrine的配置如下所示:

doctrine:
dbal:
    default_connection: default
    connections:
        default:
            dbname:         "%default_db_master_name%"
            host:           "%default_db_master_host%"
            port:           "%default_db_master_port%"
            user:           "%default_db_master_user%"
            password:       "%default_db_master_password%"
            charset:        UTF8
            driver:         "%default_db_master_driver%"
            logging:        "%kernel.debug%"
            profiling:      "%kernel.debug%"
            wrapper_class:  AppBundle\Connection\AppMasterSlaveConnection
            mapping_types:
                enum: string
            slaves:
                slave1:
                    host:     "%default_db_slave1_host%"
                    port:     "%default_db_slave_port%"
                    dbname:   "%default_db_slave_name%"
                    user:     "%default_db_slave_user%"
                    password: "%default_db_slave_password%"
                slave2:
                    host:     "%default_db_slave2_host%"
                    port:     "%default_db_slave_port%"
                    dbname:   "%default_db_slave_name%"
                    user:     "%default_db_slave_user%"
                    password: "%default_db_slave_password%"

我想为奴隶添加权重,因为它们的硬件不相等,其中一些更高效,一些更少。 此外,我想注入memcache服务(或注入params用于创建缓存服务对象),以便放置由请求重载的临时dns,并让他们有机会恢复正常。 例如,我想按照以下方式为奴隶注入重量参数:

                slave1:
                    host:     "%default_db_slave1_host%"
                    port:     "%default_db_slave_port%"
                    dbname:   "%default_db_slave_name%"
                    user:     "%default_db_slave_user%"
                    password: "%default_db_slave_password%"
                    weight: "%default_db_slave1_weight%"
                slave2:
                    host:     "%default_db_slave2_host%"
                    port:     "%default_db_slave_port%"
                    dbname:   "%default_db_slave_name%"
                    user:     "%default_db_slave_user%"
                    password: "%default_db_slave_password%"
                    weight: "%default_db_slave2_weight%"

当我添加此选项时,收到错误

InvalidConfigurationException in ArrayNode.php line 317: Unrecognized option "weight" under "doctrine.dbal.connections.default.slaves.slave1"

我不知道怎么做。我只有一个想法,通过驱动程序选项传输所有这些参数,类似这样

            logging:        "%kernel.debug%"
            profiling:      "%kernel.debug%"
            wrapper_class:  AppBundle\Connection\AppMasterSlaveConnection
            options:
                slave1: 5
                slave2: 25
                slave3: 45
                slave4: 25
                cache: '%memcached_db%'
            mapping_types:
                enum: string
            slaves:
                slave1:

但看起来很糟糕。

请帮帮我。

0 个答案:

没有答案