私は最初の Doctrine 2.0 プロジェクトでエンティティをロードするのにかなりの時間を費やしてきました。私のエンティティクラスをロードすることを除いて、すべてが正常に動作します(ロードする他のクラスを取得し、DBALを介したデータベースとの接続が成功しました)。
必要な情報をお伝えします。
- tarball メソッドで Doctrine をインストールしました
私のフォルダの構造はこのようなものです
public_html -> docrine test -> entities -> User.php -> Video.php
ロードしようとしているブートストラップファイルで
<?php $sRoot = "/home/..../public_html/doctrinetest"; $classLoader = new \Doctrine\Common\ClassLoader('doctrinetest\entities', $sRoot.'/doctrinetest/entities'); $classLoader->register(); // register on SPL autoload stack
名前空間として、クラスに逆らう前に次の行を入れます
namespace doctrinetest\entities;
次に、コマンドを実行してスキームを生成しようとすると
$tool = new \Doctrine\ORM\Tools\SchemaTool($em); $classes = array( $em->getClassMetadata('Video'), $em->getClassMetadata('User') ); $tool->createSchema($classes);
エラーが発生します
Warning: class_parents() [function.class-parents]: Class Video does not exist and could not be loaded in /home/..../public_html/doctrine2-tarball/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 40
これについて私を助けてください、ありがとう、Pj