EC-CUBEのプラグインではEntityとRespositoryを作成して自身に関連するテーブルでの処理を行うことがあるが、
src以下の既存のテーブルとそれに紐づくRepositoryを参照して処理をしたい場合に、既存のRepositoryを継承することができる。
以下、設定の手順
1.Repositoryを作成する。
任意の名前でRepositoryを作成する。
2.ServiceProviderを作成する。
任意の名前でServiceProviderを作成しRepositoryの登録を行う。
また既存Repositoryの継承もここで設定する。
// 既存リポジトリの継承
$app['hoge.repository.product'] = $app->share(function () use ($app) {
return new HogeRepository($app['orm.em'], $app['orm.em']->getMetadataFactory()->getMetadataFor('Eccube\Entity\Product'));
}
これで既存Repositoryを使用することができる。
ただし、もしプラグインの方でEntityを未作成の場合は、プラグインのコントローラ上でuseを使用し、クラスの読み込みを行う必要がある。
use Plugin\Hoge\Repository\HogeRepository;