簡體   English   中英

如何在“ Laravel”中設置“松散耦合”設計模式

[英]How to setup “Loosely Coupled” design pattern in “Laravel”

我對“ Laravel”世界很陌生,因此在基本知識上我可能是錯的。

我正在嘗試使用“松散耦合”設計模式設置項目。 我研究了以下教程:

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

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

並且還研究了SO的以下線程:

Laravel 5-接口不可實例化

Laravel ReflectionException錯誤:存儲庫不存在

但無法得到結果。

所以這是我的應用程序結構:

    -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

請指導我我在做什么錯。

您的幫助將不勝感激。

謝謝。

在您的UserRepository中,嘗試將其更改為: use App\\Repositories\\Abstracts更改為: use App\\Repositories\\Abstracts\\IUserRepository

另外,當您不熟悉Laravel時,請訪問Laracasts.com。 沒有比該網站更好的laravel資源了。 這是對所有新來的laravel人的事實上的建議。 (例如,hre提供了很多免費的laravel視頻入門教程: https ://laracasts.com/series/laravel-5-from-scratch)

祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM