Как настроить & quot; Слабосвязанную & quot; шаблон дизайна в «Laravel»

Я очень новичок в мире «Laravel», поэтому могу ошибаться в самых основах.

Я пытаюсь настроить проект по шаблону «Слабосвязанная». Я изучил следующие уроки:

http://vegibit.com/laravel-repository-pattern/

http://heera.it/laravel-repository-pattern#.Vtaepfl97IU

а также просмотрел следующие темы SO:

Laravel 5 — интерфейс не может быть создан

Laravel ReflectionException error: репозиторий не существует

но не смог получить результаты.

Итак, вот моя структура приложения:

    -app

-Providers
IOCProvider
-Repositories
-Abstracts
IUserRepository
-Concrete
UserRepository

Вот «IUserRepository»:

  <?php
namespace App\Repositories\Abstracts;

interface IUserRepository {
public function getUserByID($ID);

}

И UserRepository:

    <?php
namespace App\Repositories\Concrete;
use App\Repositories\Abstracts;
use app\Model;
class UserRepository implements IUserRepository {
public function getUserByID($id){
$user=  User::find(1);
return $user;
}
}

IOCProvider.php:

    <?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class IocProvider extends ServiceProvider {
public function register()
{

$this->app->bind('App\Repositories\Abstracts\IUserRepository', 'App\Repositories\Concrete\UserRepository');

}
}

И composer.json:

   "autoload": {
"classmap": [
"database"],
"psr-4": {
"App\\": "app/",
"App\\Repositories\\Abstracts":"app/Repositories/Abstract",
"App\\Repositories\\Concrete":"app/Repositories/Concrete"}
},

Теперь я получаю эту ошибку:

   ReflectionException in Container.php line 798:
Class App\Repositories\Abstracts\IUserRepository does not exist

Пожалуйста, объясните мне, что я делаю не так.

Ваша помощь будет по достоинству оценена.

Благодарю.

0

Решение

В вашем UserRepository попробуйте изменить это: use App\Repositories\Abstracts
к этому : use App\Repositories\Abstracts\IUserRepository

На заметку, что вы новичок в Laravel — перейдите на Laracasts.com. Нет лучшего ресурса для учебников, чем этот сайт. Это рекомендация по умолчанию для всех новых людей. (Например, hre — это хороший набор бесплатных начинающих видеоуроков по Laravel: https://laracasts.com/series/laravel-5-from-scratch)

Удачи

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]