0

私は Laravel 4 で奇妙な経験をしています。時間を無駄にしないために、この問題に飛び込みます。さて、名前空間をディレクトリに整理しているので、見逃しているか何かがあるかもしれませんが、チェックしてください。私は助けが必要です。よし、コードを見せよう。

  File: app/services/profile/profile.php


   <?php namespace Services\Profile;

     use Services\Repo\ProfileRepoInterface as ProfileInterface;

     class Profile
     {
        protected $profile;
        function __construct(ProfileInterface $profile)
        {
            $this->profile = $profile;
        }
     }


File: app/services/repo/ProfileRepoInterface.php
<?php 
namespace Services\Repo;
interface ProfileRepoInterface{
    public function all();
}

>  File: app/services/repo/EloquentProfileRepository.php
>         <?php 
>      namespace Services\Repo; 
>     
>     class EloquentProfileRepository implements ProfileRepoInterface
>     {
>       public function all()
>       {
>           return 'Returned All';
>       }
>     }

routes.php ファイルの先頭にインターフェイスをバインドしました

File: routes.php

    App::bind('Services\Repo\ProfileRepoInterface','Services\Repo\EloquentProfileRepository');
Route::get('/posts',function()
{
        $pro = new Services\Profile\Profile;
        var_dump($pro);
});

composer.json ファイルのクラスマップに「app/services」を追加しようとしましたが、うまくいきませんでした。ClassLoader の global.php ファイルに追加しようとしても、まだ機能しません。私が間違ったことをしたかもしれませんか?エラーが発生します。

Services\Profile\Profile::__construct() に渡される引数 1 は、Services\Repo\ProfileRepoInterface のインスタンスである必要があり、何も指定されず、20 行目の E:\server\www\laravel\app\routes.php で呼び出され、定義されている必要があります

4

1 に答える 1