1

これは関連するコードです:

throw new Exception("Message");

そして、これは私が受け取るエラーメッセージです:

致命的なエラー:require()[function.require]:必要な'C:\ wamp \ www \ drupal-7.15 \ sites \ all \ modules \ dbManip \ Entities \ Exception.php'(include_path='。;C:\ C:\ wamp \ bin \ php \ php5.3.13 \ pear \ Doctrine \ Common\ClassLoader.phpの163行目のwamp\bin \ php \ php5.3.13 \ pear \')

DoctrineはExceptionクラス定義を私の別のエンティティであるかのようにロードしようとしていると思いますが、私が知る限り、ExceptionPHPにネイティブです(私はPHP 5.3.13を使用しています)。私の理論では、オートローダーに関して何か間違ったことをしましたが、何が起こっているのかわかりません。オートローダーに関して私が持っているものは次のとおりです。

use Doctrine\ORM\Tools\Setup;

require_once("Doctrine/ORM/Tools/Setup.php");
Setup::registerAutoloadPEAR();

$classloader = new Doctrine\Common\ClassLoader('Entities', __DIR__);
$classloader->register();

私はここで何が間違っているのですか?Exceptiondoctrineのオートローダーがエンティティをロードしようとせずに例外をスローするにはどうすればよいですか?

4

1 に答える 1

1

これが PHP です。教義ではありません。

名前空間でファイルを宣言すると、ファイルに記載されているすべてのクラスに同じ名前空間が使用されます。Exception クラスがルート名前空間からのものであることを示すには、明示的にする必要があります。

throw new \Exception("Message");
于 2012-08-16T18:37:08.470 に答える