Как мне создать универсальный интерфейс DAO на PHP?

#java #php #dao

#java #php #dao

Вопрос:

Я пытаюсь написать универсальный интерфейс DAO на PHP. Я знаю, как это выглядит на 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);
}