Я знаю этот вопрос lil bit old, но я все еще не могу найти правильное решение. Я искал интернет в течение нескольких дней и пробовал несколько решений, проверял путь к файлам, обновлял композитор.json и дамп-автозагрузку, но все равно не повезло. Я все еще получаю следующую ошибку:Laravel ReflectionException error: Репозиторий не существует
ReflectionException
Class Cribbb\Storage\User\EUserRepository does not exist
вот мой код.
Контроллер (приложение/контроллеры/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;
}
?>
Интерфейс (Библиотека/Cribbb/хранение/Пользователь/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);
}
}
?>
служба Provider (Библиотека/Cribbb/хранение/StorageServiceProv ider.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'
);
}
} ?>
я также включал поставщика услуг в приложение/Config/app.php следующим образом:
'providers' => array(
...
'Cribbb\Storage\StorageServiceProvider'
);
и я добавил приложение/Пб composer.json:
"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 все еще бросает ту же ошибку. – under5hell
Hi Philip! Почему вы не регистрируете папку как PSR-0 или PSR-4? – hannesvdvreken