我在使用 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);
});
我尝试将“app/services”添加到 composer.json 文件的类映射中,但没有奏效。即使尝试添加到 ClassLoader 中的 global.php 文件仍然不起作用。我可能做错了什么?我得到了错误。
传递给 Services\Profile\Profile::__construct() 的参数 1 必须是 Services\Repo\ProfileRepoInterface 的实例,没有给出,在第 20 行的 E:\server\www\laravel\app\routes.php 中调用并定义