如何在 PHP 中创建通用 DAO 接口?

Posted

技术标签:

【中文标题】如何在 PHP 中创建通用 DAO 接口?【英文标题】:How do I make a generic DAO interface in PHP? 【发布时间】:2019-09-03 17:02:07 【问题描述】:

我正在尝试用 php 编写一个通用的 DAO 接口。我知道它在 Java 中的样子,但我只知道它在 PHP 中的样子。

我已经在 PHP 中尝试过。

<?php
 interface DAO 

    public function create($obj);
    public function read();
    public function update($obj);
    public function delete($obj);
 

因为我想要这样的 Java 接口

public interface DAO<T> 

    void create(T ob);
    List<T> read();
    void update(T ob);
    void delete(String id);


我希望能够像在 PHP 中那样编写接口,但我无法将通用对象添加到接口中。

【问题讨论】:

【参考方案1】:

通用 DAO 的最简单形式是在对象级别提供基本的 CRUD 操作,而不暴露持久性机制的内部。

interface UserDao

    /**
     * Store the new user and assign a unique auto-generated ID.
     */
    function create($user);

    /**
     * Return the user with the given auto-generated ID.
     */
    function findById($id);

    /**
     * Return the user with the given login ID.
     */
    function findByLogin($login);

    /**
     * Update the user's fields.
     */
    function update($user);

    /**
     * Delete the user from the database.
     */
    function delete($user);

【讨论】:

以上是关于如何在 PHP 中创建通用 DAO 接口?的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中创建 DAO 的正确方法

如何在 Spring MVC 中的不同类中创建动态 bean

如何在Dagger 2中创建包含DAO对象的View Model?

可以在DAO中创建对象吗

如何在 JPA 中创建通用查询?

如何在通用相册中创建视图(通用)项目 - 网址方向问题