1.3. Zend::loadClass()

Zend::loadClass($class, $dirs) は、 PHP ファイルを読み込んで、クラスが存在するかどうかを確かめます。

<?php

Zend::loadClass('Container_Tree', array('/home/production/mylib', (/home/production/myapp')));

?>

まず $class をパス階層に変換します。 つまり、アンダースコアをパス区切り文字に変換します。 その後、この階層が $dirs の各要素の後に追加されます。 $dirsnull の場合は、その結果はひとつの階層だけとなります。 たとえば、Container_TreeContainer/Tree.php となります。 /home/production/mylib/Container/Tree.php が存在した場合は、それを読み込みます。 存在しなければ、次に /home/production/myapp/Container/Tree.php を探し、見つかった場合にそれを読み込みます。それでも見つからなかった場合は、 PHP のインクルードパスから Container/Tree.php を探します。

$dirs に文字列あるいは配列を指定すると、 指定した順にそのディレクトリを探します。そして最初に見つかったファイルを読み込みます。 ディレクトリ $dirs にファイルがみつからない場合は、PHP の include_path を用いて include 文で読み込みます (つまり include 'Tree.php') となります。

ファイルが見つからない場合、あるいは読み込んだファイルにクラスが存在しない場合は Zend_Exception をスローします。読み込みには Zend::loadFile() を使用するので、クラス名として指定できるのは 英数字とハイフン ('-')、アンダースコア ('_') そしてピリオド ('.') だけです。