Zend_Loader::isReadableを使う理由

Zend_Loader::isReadableというメソッドがあるのを今日知りました。今までphpの標準関数is_readableを使っていたので必要ともしてませんでした。これの違いってなに?

マニュアルを読んでみると、こんな記述が

このメソッドは、PHP の関数 » is_readable() のラッパーです。この関数は include_path を探しませんが、 Zend_Loader::isReadable() は include_path も検索対象に含めます。


ソースはこんな感じ

1
2
3
4
5
6
7
8
9
10
11
12
13
    public static function isReadable($filename)
    {
        // Phar occasionally fails when using fopen()
        if (strpos($filename, 'phar://') !== false) {
            return is_readable($filename);
        }
 
        if (!$fh = @fopen($filename, 'r', true)) {
            return false;
        }
        @fclose($fh);
        return true;
    }



なるほど、include_path先も見てくれるとなると便利そうと感じる。
include_path関連で、シンボリック等を使ったパスを渡すと実際の絶対パスを返してくれる、realpathというphpのメソッドも覚えておくと、使うときがありそうです。