
■環境
Laravel:5.6
PHP:7.1
■概要
サービスプロバイダーにて、単一のコントローラ内で、
1つのインターフェースに複数の実装を紐づけたいのですが、可能なのでしょうか。
どうしてもインターフェースと実装が1対1にしかならず、困っています。
■構成概要
インターフェース:UserRepositoryInterface
実装クラス:
・UserRepository
・TempUserRepository
php
1class UserRepository implements UserRepositoryInterface 2{ 3 ・・・ 4}
php
1class TempUserRepository implements UserRepositoryInterface 2{ 3 ・・・ 4}
下記のようにできるか試してみましたが、
後に書いたTempUserRepositoryが実装として紐づけられました。
何か方法があるのなら、教えていただきたいです。
php
1<?php 2 3・・・ 4 5public function register() 6{ 7 $this->app->bind( 8 \App\Repositories\UserRepositoryInterface::class, 9 \App\Repositories\UserRepository::class 10 ); 11 12 $this->app->bind( 13 \App\Repositories\UserRepositoryInterface::class, 14 \App\Repositories\TempUserRepository::class 15 ); 16} 17

動物(INTERFACE)として キリンは動物です。 クマは動物です。 ウマは動物です。

回答2件
あなたの回答
tips
プレビュー