ipunkt / laravel-repositories
此包已被废弃且不再维护。没有建议的替代包。
laravel 的基础仓库实现
2.0.0
2016-09-07 06:43 UTC
Requires
- php: >=5.3.0
- illuminate/database: ~4.0|~5.1.0|~5.2.0|~5.3.0
- illuminate/support: ~4.0||~5.1.0|~5.2.0|~5.3.0
This package is auto-updated.
Last update: 2023-03-23 03:23:18 UTC
README
安装
在 composer.json 中添加以下行
"require": {
"ipunkt/laravel-repositories": "~2.0"
}
使用方法
仓库接口
通过提供的接口 Ipunkt\LaravelRepositories\Contracts\RepositoryInterface
扩展您的接口。
示例
use Ipunkt\LaravelRepositories\Contracts\RepositoryInterface;
interface HolidayRepository extends RepositoryInterface
{
public function allByUser(User $user);
}
仓库类
通过提供的 Ipunkt\LaravelRepositories\EloquentRepository
扩展您的仓库类。它是一个抽象类。
您需要有一个自己的构造函数,它将内部属性 model
设置为这个仓库将要工作的适当模型。
示例
use Ipunkt\LaravelRepositories\EloquentRepository;
class EloquentHolidayRepository extends EloquentRepository implements HolidayRepository
{
/**
* @param Holiday $holiday eloquent model
*/
public function __construct(Holiday $holiday)
{
$this->model = $holiday;
}
/** implementing all methods in HolidayRepository */
}
与服务提供者注册
您应该使用服务提供者注册所有仓库相关内容,以便在控制器中使用它。
示例
class RepositoryServiceProvider extends ServiceProvider
{
public function register()
{
// binding interface HolidayRepository to the concrete implementation of EloquentHolidayRepository
$this->app->bind(
'HolidayRepository',
function () {
return new EloquentHolidayRepository(new Holiday());
}
);
}
}
class HolidayController extends Controller
{
private $repo;
public function __construct(HolidayRepository $holidayRepository)
{
$this->repo = $holidayRepository;
}
}
API 文档
请查看 Ipunkt\LaravelRepositories\Contracts\RepositoryInterface
了解当前存在的函数。