0

そのため、Laravel 4 で IoC や DI などを実装しようとして、壁にぶつかりました。私は何かを誤解しているか、ひどく間違ったことをしているのですか、どちらかわかりません...

だから私はクラス Person (モデルやライブラリではなく「ビジネスクラス」) を持っています:

 namespace Entities;
 use Interfaces\Person as PersonInterface;
 class Person implements PersonInterface {...}

以下を備えた工場:

 use Interfaces\Person;
 ...
 App::singleton('user', function($app) {
      ...
      $user_object = new Person();
      ...
 });

およびエイリアス配列で:

 'Interfaces\Person' => 'Entities\Person'

問題は、インターフェイスが Person クラスにバインドされているため、 Person クラスがそのインターフェイスを実装できないために機能しないことです。

 Entities\Person cannot implement Entities\Person - it is not an interface 

クラスが実際にインスタンス化されるのを妨げているアプリケーションで IoC とインターフェイスを使用するというキャッチ 22 に引っかかっているようです。

関係あるかわかりませんが貼っておきます

 App::bind('Interfaces\Person','Entities\Person'); 

routes.php ファイルでは何もしないようです (ただし、エイリアス配列に入れると実行されます)。確かに私はここで何か間違ったことをしています。何か案は?

4

1 に答える 1