読者です 読者をやめる 読者になる 読者になる

php-pecl-memcached で接続確認

php-pecl-memcachedmemcachedとの接続部分を実装していたら、
接続確認用のメソッドが見つからなかった。
Memcached::addServer はで接続確認できるかと思ったけど、
接続確立はしないらしい・・・。
http://php.net/manual/ja/memcached.addserver.php

ちなみに、php-pecl-memcache だと Memcache::connect というメソッドがあって、
それで確認できるっぽい。

ということで、FuelPHP の core にある memcached 接続部分を確認してみた。
今使っているフレームワークFuelPHP ってだけなので、
別に他のフレームワークでもいいんだけど・・・。

結果、以下のように接続確認をしていた。

<?php
// check if we can connect to the server(s)
if (static::$memcached->getVersion() === false)                                                          
{
    throw new \FuelException('Memcached cache are configured, but there is no connection possible. Check your configuration.');         
}

バージョンチェック用のメソッドで確認してるみたい。
とりあえず、これを採用しようと思う。

ただ、実際にgetVersion() の挙動を確認してみると、
間違った接続情報で getVersion() を実行した際の戻り値が
false じゃなくて、 255.255.255 だった。

なので、以下のように修正。

<?php
// check if we can connect to the server(s)
if (static::$memcached->getVersion() === '255.255.255')                                                          
{
    throw new \FuelException('Memcached cache are configured, but there is no connection possible. Check your configuration.');         
}

これでいいのか・・・?