如何在 "Laravel" 中设置 "Loosely Coupled" 设计模式
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 ReflectionException error : Repository doesn't exist
但无法得到结果。
所以这是我的应用程序结构:
-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)
祝你好运
我是“Laravel”世界的新手,所以我可能会在非常基础的地方出错。
我正在尝试使用“松散耦合”设计模式设置一个项目。我研究了以下教程:
http://vegibit.com/laravel-repository-pattern/
http://heera.it/laravel-repository-pattern#.Vtaepfl97IU
并且还查看了 SO 的以下线程:
Laravel ReflectionException error : Repository doesn't exist
但无法得到结果。
所以这是我的应用程序结构:
-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)
祝你好运