ドライバが読み込まれているかどうかの確認
ドライバ形式のパッケージでは、
ドライバを読み込む前にまずそれが存在するのかどうかを確認しなければなりません。
この場合、単純に file_exists() を使用してもうまくいきません。これは
インクルードパス
をチェックしないからです。fopen() の
3 番目のパラメータを使うとインクルードパスをチェックできるので、
これを使用します。
<?php
$driver = 'SomeDriver';
$class = 'My_Package_Driver_' . $driver;
$file = str_replace('_', '/', $class) . '.php';
//check if it exists and can be loaded
if (!@fclose(@fopen($file, 'r', true))) {
throw new My_Package_Driver_Exception(
'Driver ' . $driver . ' cannot be loaded.'
);
}
//continue with including the driver
require_once $file;
//...
?>