そのため、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 ファイルでは何もしないようです (ただし、エイリアス配列に入れると実行されます)。確かに私はここで何か間違ったことをしています。何か案は?