Symfony services.yaml句柄异常

问题描述 投票:0回答:1

在我的services.yaml中,我收到此代码:

services:
    # prepare database
    DatabaseProvider:
        class: Kepler\Providers\DatabaseProvider
        arguments: ['%database.reader.dsn%', '%database.reader.username%', '%database.reader.password%']

    ReaderPDO:
        class: PDO
        factory: ['@DatabaseProvider', generateDatabaseConnection]

    WriterPDO:
        class: PDO
        factory: ['@DatabaseProvider', generateDatabaseConnection]

和DatabaseProvider:generateDatabaseConnection

public function generateDatabaseConnection() {
        try {
            return new PDO($this->host, $this->username, $this->password);
        } catch (Exception $e) {
            return new PDO($this->host, $this->username, $this->password);
            $_GLOBALS['db_error'] = true;
        }
    }

所以我的问题在这里:在某些情况下,PDO连接无法正常工作/失败。因此,如何捕获此异常并返回常规404页面(这是我不需要任何数据库连接的页面)?

一些基本分析:

  • 我相信这在symfony启动过程中会失败
  • 即使我返回null,或在捕获中不返回任何内容,代码也将继续执行autowiring,这将在需要DB连接的Controller中失败
symfony autowired
1个回答
0
投票

如果与return块中一样返回[[完全相同]],则[catch块中具有try应该被认为是有害的。

© www.soinside.com 2019 - 2024. All rights reserved.