0

次のような 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 が存在しません なぜ?? オブジェクトの開始中にクラスを自動ロードする必要があります。

4

1 に答える 1