如何在将Zend项目迁移到新服务器时解决Doctrine DBAL异常


How to solve Doctrine DBAL Exception when moving a Zend project to a new server

我正在将一个Zend框架项目转移到一个新的服务器上。该项目是由另一位开发人员创建的,使用了我自己没有使用过的Doctrine,所以我有点不知所措,无法修复错误。

我在目标服务器上运行了一些其他zend项目(运行ubuntu 14.04),没有问题,但在这个项目中,我遇到了Doctrine DBAL异常。

我得到的错误是:

致命错误:未捕获异常"Doctrine''DBALException"消息"如果没有PDO,选项"driver"或"driverClass"是强制性的实例已提供给DriverManager::getConnection()。'在里面/项目路径/library/DDoctrine/DBAL/DBALException.php:60堆栈跟踪:#0/项目路径/library/DDoctrine/DBAL/DriverManager.php(173):条令''DBAL''DALException::driverRequired()#1/项目路径/library/DDoctrine/DBAL/DriverManager.php(136):条令''DBAL''DriverManager::_checkParams(数组)#2/项目路径/www/toolbox/library/Printice/ORM/EntityManager.php(938):Doctrine''DBAL''DriverManager::getConnection(Array,对象(条令''ORM''Configuration),对象(条令''Common''EventManager))#3/项目路径/www/toolbox/application/Bootstrap.php(151):Doctrine''ORM''EntityManager::create(Array,对象(条令''ORM''Configuration))#4/项目路径/www/toolbox/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669):引导程序->_initDoctrine()#5/项目路径/www/toolbox/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622):Zend_Application_Bootstrap_Boo-in/项目路径/www/toolbox/library/Cotrine/DBAL/DBALException.php,第60行

这个答案与Zend Framework 2配置有关:

Zend Framework 2项目中,有一个autoload文件夹。

'config'autoload

在该文件夹中,您应该使用新服务器(将项目迁移到其中)的配置选项创建所有适当的*.local.php文件。

其中一个是学说,应该包含这样的内容:

<?php
return array(
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine'DBAL'Driver'PDOMySql'Driver',
                'params' => array(
                    'host' => 'localhost',
                    'port' => '3306',
                    'user' => 'username',
                    'password' => 'password',
                    'dbname' => 'database',
                    'charset' => 'utf8',
                )
            )
        )
    )
);

阅读ZF2文档中有关应用程序配置的更多信息