美文网首页
hyperf3.0 Dao层和Service层

hyperf3.0 Dao层和Service层

作者: geeooooz | 来源:发表于2023-07-13 08:39 被阅读0次

在 Hyperf 3.0 中,可以使用 Dao 层和 Service 层来组织和处理数据访问和业务逻辑。

Dao(Data Access Object)层是负责处理数据访问的层,它封装了对数据库或其他数据源的操作。Dao 层通常包含与数据源交互的方法,如查询、插入、更新和删除等。

在 Hyperf 中,你可以创建一个 Dao 类来实现数据访问逻辑。以下是一个示例:

<?php
declare(strict_types=1);

namespace App\Dao;

use Hyperf\DbConnection\Db;

class UserDao
{
    public function getById(int $id)
    {
        return Db::table('users')->where('id', $id)->first();
    }

    public function create(array $data)
    {
        return Db::table('users')->insert($data);
    }

    public function update(int $id, array $data)
    {
        return Db::table('users')->where('id', $id)->update($data);
    }

    public function delete(int $id)
    {
        return Db::table('users')->where('id', $id)->delete();
    }
}

在上面的示例中,我们创建了一个名为 UserDao 的 Dao 类,包含了根据 ID 获取用户、创建用户、更新用户和删除用户等方法。这些方法使用了 Hyperf 的数据库查询构建器 Db 来执行对数据库的操作。

Service 层是负责处理业务逻辑的层,它在 Dao 层之上,进行更高层次的业务处理。Service 层通常包含了与业务相关的方法,如用户注册、支付订单、发送邮件等。

在 Hyperf 中,你可以创建一个 Service 类来实现业务逻辑。以下是一个示例:

<?php
declare(strict_types=1);

namespace App\Service;

use App\Dao\UserDao;

class UserService
{
    private $userDao;

    public function __construct(UserDao $userDao)
    {
        $this->userDao = $userDao;
    }

    public function getUserById(int $id)
    {
        return $this->userDao->getById($id);
    }

    public function createUser(array $data)
    {
        // 验证数据
        // ...

        // 创建用户
        return $this->userDao->create($data);
    }

    public function updateUser(int $id, array $data)
    {
        // 验证数据
        // ...

        // 更新用户
        return $this->userDao->update($id, $data);
    }

    public function deleteUser(int $id)
    {
        // 删除用户
        return $this->userDao->delete($id);
    }
}

在上面的示例中,我们创建了一个名为 UserService 的 Service 类,通过构造函数注入了 UserDao,并使用 UserDao 的方法来实现业务逻辑。例如,通过 getUserById 方法获取用户,通过 createUser 方法创建用户,通过 updateUser 方法更新用户,通过 deleteUser 方法删除用户等。

通过将 Dao 层和 Service 层分离,可以更好地组织和管理代码,提高代码的可维护性和可测试性。Dao 层负责处理数据访问,Service 层负责处理业务逻辑,两者相互配合,使应用程序的结构更清晰和易于扩展。

相关文章

网友评论

      本文标题:hyperf3.0 Dao层和Service层

      本文链接:https://www.haomeiwen.com/subject/kphmudtx.html