anik/repottern

此包已被废弃且不再维护。没有建议的替代包。

Repottern 是 Laravel 的仓库模式。

1.0.1 2016-07-23 17:40 UTC

This package is auto-updated.

Last update: 2020-05-01 14:57:48 UTC


README

对于正在使用 MVC 并希望在 Thin Model、Thin Controller、Fat Repository 上工作的人。这个包会为你做到这一点。它的工作方式与 Laravel Eloquent 相同。完全一样,还有一些额外功能。

要求

  • Laravel 5+
  • PHP 5.6+

如何安装

composer require anik/repottern

用法

要使用它,你需要创建一个类,其中你的类将扩展 Anik\Repottern\BaseRepository,然后实现该类中的模型方法,完成后即可。

现在,你可以将此类注入到方法中,也可以在构造函数中注入,或者使用该类以静态方式调用方法。

假设你有一个 User 模型。现在,

<?php
// Repository
class UserRepository extends BaseRepository
{
	public function model ()
	{
		return User::class;
	}	
	
	protected function findUserWithWildCard()
	{
	    return $this->where('username', 'LIKE', "%n%")->get();
	}
}
<?php
// From controller
class HomeController extends Controller
{
    public function controllerMethod(UserRepository $repository)
    {
        # return $repository->with('role')->get();
        # return $repository->paginate(10);
        # return $repository->find(10);
        # return $repository->findUserWithWildCard();
        
        # return UserRepository::with('role')->get();
        # return UserRepository::paginate(10);
        # return UserRepository::find(10);
        # return UserRepository::findUserWithWildCard();
        
    }
}

在这里需要注意的事项,为了使用类名以静态方式调用方法,你必须使用 protected 访问修饰符。

许可证

Repottern 在 MIT 许可下发布。

错误和问题

如果你发现任何错误或其他问题,请提交问题并让我知道。分支总是受欢迎的。