\Fuel\Core\Mongo_Dbが依存するPECL::Package::mongoの1.5以上はインスタンス作成時の new \Mongo() がなくなっています。
* [PHP-818] - Deprecate "Mongo" in favour of MongoClient.
インスタンス生成時は new \MongoClient() に変更しろということですかね。
この変更はFuelPHP 1.7で取り込まれています。
多くの人はまったく気にすることはないと思いますが、FuelPHP 1.6をメンテナンスするときにちょこっと厄介。例えば、Homebrew(他のパッケージ管理ツールでも同様だと思う)でお気楽に環境を整えてしまおうとするとPECL::Package::mongoの最新が入ってしまう可能性があります。FuelPHP 1.6の\Fuel\Core\Mongo_Db::__construct()は
// Let's give this a go
try
{
$this->connection = new \Mongo(trim($connection_string), $options);
$this->db = $this->connection->{$config['database']};
return $this;
}
catch (\MongoConnectionException $e)
{
throw new \Mongo_DbException("Unable to connect to MongoDB: {$e->getMessage()}");
}
こうなっていて、最新のPECL::Package::mongoが期待する new \MongoClient() ではありません。なので、
Fuel\Core\PhpErrorException [ 8192 ]: Fuel\Core\Mongo_Db::__construct(): The Mongo class is deprecated, please use the MongoClient class
こんなエラーが発生してしまいます。
ということでPECL::Package::mongoはパッケージ管理ツールに頼らずに、pecl コマンドで古いバージョンをインストールしましょう。
sudo pecl install mongo-1.4.5
こうするとバージョン 1.4.5 のPECL::Package::mongoがインストールされます。
これでFuelPHP 1.6のMongo_Dbも大丈夫。