Symfony2 and HHVM Declaration of Doctrine\DBAL\Driver\PDOConnection::prepare() must be compatible

StackOverflow https://stackoverflow.com/questions/21890930

  •  13-10-2022
  •  | 
  •  

Question

i am trying to set up a symfony2 project on a HHVM machine,

The HHVM is running on FastCGI as explained in the hhvm tutorial, thus running behind an apache2 server on Debian.

I have created everything but when i try to run my application i am getting the following error:

ContextErrorException: 16777217: Declaration of Doctrine\DBAL\Driver\PDOConnection::prepare() must be compatible with that of Doctrine\DBAL\Driver\Connection::prepare() in /LOCATION/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php line 30

I am thinking this has something to do with PDO in HHVM but i tested it using the class_exists('PDO') and that says that PDO is enabled

Était-ce utile?

La solution

This is an issue that was fixed via a pull request to the master branch of doctrine/dbal about 2 months ago. However, depending on the branch of Symfony 2 you are using, that doctrine/dbal fix may not be included.

https://github.com/doctrine/dbal/pull/373

If it is possible to use a version of Symfony 2 that includes this latest doctrine/dbal fix, I think you will see that issue go away.

Autres conseils

I've had the same issue and upgrading doctrine/orm and doctrine/dbal to latest versions (listed below) fixed my problems.

doctrine/orm : 2.5.@dev doctrine/dbal: 2.5.@dev

To safely upgrade, open your composer.json file, find and change the versions like so:

composer.json

"require": {
    // ... other package requirements
    "doctrine/orm": "~2.5.*@dev",
    "doctrine/dbal: "~2.5.*@dev", 
    // .. more packages

Then run composer update doctrine/* which will remove the old versions of doctrine and update all doctrine packages.

The declaration of

Doctrine\DBAL\Driver\PDOConnection::query() 

must be compatible with

PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)

I had the same problem, but the solution was to just change the PHP version from version 8 to 7.3.

  • Login to your Cpanel with your credentials, search for MultiPHP Manager.
  • Select the domain or subdomain that you would like to change the PHP version of.
  • Select from the dropdown menu and chose the appropriate PHP version. (For me, 7.3 worked like a charm.)

Everything worked like it supposed to.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top