【发布时间】:2014-04-14 18:37:36
【问题描述】:
我知道这个问题有点老了,但我仍然找不到正确的解决方案。我已经在互联网上搜索了几天,并尝试了几种解决方案,检查我的文件路径,更新 composer.json 并转储自动加载它,但仍然没有运气。我仍然收到以下错误:
ReflectionException
Class Cribbb\Storage\User\EUserRepository does not exist
这是我的代码。
控制器(app/controllers/UsersControllers.php):
<?php
use Cribbb\Storage\User\IUserRepository as User;
class UsersController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function __construct(User $user)
{
$this->user = $user;
}
?>
接口(lib/Cribbb/Storage/User/IUserRepository.php):
<?php
namespace Cribbb\Storage\User;
interface IUserRepository{
public function all();
public function find($id);
public function create($input);
}
?>
存储库(lib/Cribbb/Storage/User/EUserRepository.php):
<?php
namepsace Cribbb\Storage\User;
use User;
class EUserRepository implements IUserRepository
{
public function all()
{
return User::all();
}
public function find($id)
{
return User::find($id);
}
public function create($input)
{
return User::create($input);
}
}
?>
服务提供者(lib/Cribbb/Storage/StorageServiceProvider.php):
<?php
namespace Cribbb\Storage;
use Illuminate\Support\ServiceProvider;
class StorageServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind(
'Cribbb\Storage\User\IUserRepository',
'Cribbb\Storage\User\EUserRepository'
);
}
} ?>
我还在 app/config/app.php 中包含了服务提供者,如下所示:
'providers' => array(
...
'Cribbb\Storage\StorageServiceProvider'
);
我在 composer.json 中添加了 app/lib:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/lib"
]
}
奇怪的是,虽然 IUserRepository 和 EUserRepository 在同一个文件夹中,但 Laravel 只检测 IUserRepository。似乎找不到 EUserRepository。 我错过了什么重要的事情吗?有什么建议吗?
【问题讨论】:
-
您是否仔细检查过文件名?
-
是的。我已经仔细检查了它们。我什至创建了一个新文件,用不同的名称命名它们,将它与 EUserRepository 放在同一个文件夹中,将它绑定到服务提供者中。和 laravel 仍然抛出同样的错误。
-
嗨菲利普!为什么不将文件夹注册为 PSR-0 或 PSR-4?
标签: laravel