次のような composer.json 構造があります。
"psr-0": {
"DatabaseSeeder\\": "app/database/seeds/"
},
app/database/seeds にファイルがあります (ここのファイルは動的に作成できるため、"classmap": ["app/database/seeds"] を使用したソリューションはここでは機能しません。シードする前に常にダンプオートロードする必要があります:
- UserTableSeeder.php
- データベースシーダー.php
このような構造で:
# DatabaseSeeder.php
namespace DatabaseSeeder;
use Doctrine\ORM\EntityManager;
class DatabaseSeeder implements Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run(EntityManager $em)
{
$this->call('DatabaseSeeder\UserTableSeeder', $em);
}
private function call($class, $em)
{
$reflectionMethod = new \ReflectionMethod($class, 'run');
$reflectionMethod->invoke(new $class, $em);
}
php composer.phar install および php composer.phar dump-autoload の後、index.php などのアプリケーションで使用できません
$object = new \DatabaseSeeder\DatabaseSeeder();
エラーが発生するため: クラス DatabaseSeeder\DatabaseSeeder が存在しません なぜ?? オブジェクトの開始中にクラスを自動ロードする必要があります。