michalwolinski/unit-of-work

工作单元(实体管理器)设计模式 Laravel 实现。

dev-master 2020-02-05 17:39 UTC

This package is auto-updated.

Last update: 2024-09-06 03:54:00 UTC


README

工作单元(实体管理器)设计模式 Laravel 实现。

通过 Composer 安装

  1. 在控制台中运行
    composer require michalwolinski/unit-of-work
    以安装此库。

用法

我建议使用依赖注入来注入 UnitOfWorkInterface

在服务类中的示例实现

use App\User;
use MichalWolinski\UnitOfWork\Interfaces\UnitOfWorkInterface;

class Service {

    /**
     * @var UnitOfWorkInterface
     */
    private UnitOfWorkInterface $unitOfWork;

    public function __construct(UnitOfWorkInterface $unitOfWork)
    {
        $this->unitOfWork = $unitOfWork;
    }

    public function example()
    {
        $user           = new User();
        $user->email    = 'firma@haxmedia.pl';
        $user->name     = 'Michal Wolinski';
        $user->password = 'secret';

        $user2           = new User();
        $user2->email    = 'example@company.com';
        $user2->name     = 'John Doe';
        $user2->password = 'secret';

        // CREATE RECORDS
        $this->unitOfWork->insert($user);
        $this->unitOfWork->insert($user2);
        $this->unitOfWork->commit();

        dump($user2->getKey());

        // UPDATE RECORDS
        $user2->name = 'Jane Doe';
        $this->unitOfWork->update($user2);
        $this->unitOfWork->commit();

        // REMOVE RECORDS
        $this->unitOfWork->delete($user2);
        $this->unitOfWork->commit();
    }
}

作者

许可证

此项目受 MIT 许可证的许可。