Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan DTO trait PHP untuk meningkatkan kebolehgunaan semula kod

Gunakan DTO trait PHP untuk meningkatkan kebolehgunaan semula kod

WBOY
WBOYasal
2023-10-12 14:36:23822semak imbas

使用PHP trait DTO提高代码复用性

Gunakan ciri PHP DTO untuk meningkatkan kebolehgunaan semula kod

Dalam pembangunan PHP, anda sering menghadapi situasi di mana anda perlu berurusan dengan Data Transfer Object (DTO). DTO digunakan terutamanya untuk pengkapsulan dan penghantaran data, dan boleh digunakan beberapa kali dalam logik perniagaan yang berbeza. Untuk meningkatkan kebolehgunaan semula kod, ciri boleh digunakan untuk melaksanakan fungsi DTO.

Trait ialah ciri baharu yang diperkenalkan dalam PHP5.4 Ia boleh menyediakan cara untuk kelas menggunakan semula kod dalam perhubungan penyepaduan. Dengan menggunakan ciri, kita boleh merangkum beberapa fungsi biasa ke dalam sifat secara berasingan, dan kemudian menggunakan pernyataan penggunaan untuk memperkenalkan ciri dalam kelas yang perlu menggunakan fungsi ini, dengan itu mencapai penggunaan semula kod.

Berikut ialah contoh kod yang menggunakan ciri untuk melaksanakan DTO:

trait DTO {
    private $data = [];

    public function setData(array $data): void {
        $this->data = $data;
    }

    public function getData(): array {
        return $this->data;
    }

    public function __get(string $name) {
        return $this->data[$name] ?? null;
    }

    public function __set(string $name, $value) {
        $this->data[$name] = $value;
    }

    public function __isset(string $name): bool {
        return isset($this->data[$name]);
    }

    public function __unset(string $name) {
        unset($this->data[$name]);
    }
}

class User {
    use DTO;

    private $id;
    private $name;
    private $email;

    public function __construct(array $data) {
        $this->setData($data);
    }
}

$userData = [
    'id' => 1,
    'name' => 'John',
    'email' => 'john@example.com',
];

$user = new User($userData);

echo $user->id; // 输出1
echo $user->name; // 输出John
echo $user->email; // 输出john@example.com

$user->email = 'newemail@example.com';

var_dump(isset($user->email)); // 输出bool(true)

unset($user->email);

var_dump(isset($user->email)); // 输出bool(false)

Dalam kod di atas, kami mentakrifkan ciri DTO, yang mentakrifkan beberapa fungsi DTO biasa, seperti menetapkan data, mendapatkan data, mengakses data secara dinamik, dsb. Kami juga mencipta kelas Pengguna dan menggunakan ciri DTO dalam kelas. Dengan cara ini, kita boleh menggunakan fungsi DTO dalam kelas Pengguna, dan jika kelas lain juga perlu menggunakan fungsi DTO, kita hanya perlu memperkenalkan ciri untuk mengelakkan pertindihan kod.

Dengan menggunakan DTO ciri PHP, kita boleh merangkum beberapa fungsi DTO biasa ke dalam ciri, dan kemudian menggunakan pernyataan penggunaan untuk memperkenalkan ciri dalam kelas yang perlu menggunakan fungsi ini, dengan itu mencapai penggunaan semula kod. Kaedah ini boleh meningkatkan kebolehgunaan semula kod, mengurangkan penulisan berulang kod, dan meningkatkan kecekapan pembangunan. Saya harap contoh di atas dapat membantu pembaca lebih memahami dan menggunakan ciri PHP DTO.

Atas ialah kandungan terperinci Gunakan DTO trait PHP untuk meningkatkan kebolehgunaan semula kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn