One stupid error kicked my ass for the last few days (Sorry for writing in this way). Recently I am working on a project with Zend Framework 2 and Doctrine MongoDB ODM. Platform Setting up killed five days only for the MongoDB driver’s bug. My platform based on Ubuntu 12.04, PHP 5.3 with Zend Framework 2 and MongoDB. I got this error when I am trying to insert something into Database. I am getting a weird error in Doctrine library. At first, my through was that it’s Zend framework 2’s error. Because it had been released a few days ago. Still lot of bugs require to be fixed. But it was coming from MongoDB PHP library in the Zend Framework. I search a lot in the web but couldn’t get any explanation for it. Okay now, let me explain a bit on this issue.
I installed the latest version of MongoDB 2.2.3 from 10gen repo as well as the latest version-1.3.4 of MongoDB database driver for PHP from PACL. I have already told that application based on Zend Framework 2 with Doctrine Mongo ODM. I checked the error.log file and get this error:
Fatal error: Class 'Doctrine\MongoDB\Util\InvalidArgumentException' not found in /PROJECT_ROOT/vendor/doctrine/mongodb/lib/Doctrine/MongoDB/Util/ReadPreference.php on line ..(any line number)
More specifically, I was getting the error in the Doctrine\MongoDB\Util\ReadPreference::convertNumericType() function. I was happening for the problem of PHP mongo driver. But it shouldn’t be happened. Because, I was already using the latest version of it. Start googling it. Unluckily I didn’t get any proper solution for it. But got some hits. According to those hints I downgrade the mongo driver to v-1.3.2 (stable version). I removed the version 1.3.4 and installed version 1.3.2. Total procedures are below.
Ran the following command to remove existing one
sudo pecl uninstall mongo
Then downloaded the version 1.3.2 and installed manually.Ran following commands.
wget http://pecl.php.net/get/mongo-1.3.2.tgz sudo tar zxvf mongo-1.3.2.tgz cd mongo-1.3.2 phpize ./configure make all sudo make install
Done. Now, my application run very well. By the way, keep your eyes open that the latest version of mongodb driver will come with bug fixed.