Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk melaksanakan lapisan kegigihan objek dalam php

Bagaimana untuk melaksanakan lapisan kegigihan objek dalam php

Apr 24, 2023 pm 02:45 PM

Pemetaan Perhubungan Objek (ORM) ialah corak reka bentuk penting dalam pembangunan perisian moden. Idea teras corak ORM adalah untuk memetakan objek dalam program ke jadual dalam pangkalan data hubungan, dengan itu mencapai integrasi yang lancar antara program dan pangkalan data. Pelaksanaan corak ORM boleh menggunakan rangka kerja ORM sedia ada, seperti Hibernate, Django ORM dan Active Record dalam Ruby on Rails. Walau bagaimanapun, dalam PHP, kita boleh menggunakan kod PHP asli untuk melaksanakan lapisan kegigihan objek tanpa memerlukan rangka kerja tambahan. Artikel ini akan memperkenalkan cara untuk melaksanakan lapisan kegigihan objek menggunakan kod PHP asli.

1. Asas pangkalan data hubungan

Sebelum memahami cara menggunakan PHP untuk melaksanakan lapisan kegigihan objek, kita perlu terlebih dahulu memahami beberapa konsep asas dalam pangkalan data hubungan.

1. Jadual pangkalan data

Pangkalan data relasi terdiri daripada banyak jadual data. Setiap jadual data terdiri daripada satu atau lebih lajur. Setiap lajur mempunyai jenis data yang sepadan, seperti integer, rentetan, tarikh, dsb.

2. Kunci utama

Setiap jadual data perlu mempunyai kunci utama, iaitu medan yang mengenal pasti setiap rekod dalam jadual secara unik. Kunci utama mestilah unik dan tidak boleh NULL.

3. Kekunci asing

Kunci asing digunakan untuk mewujudkan hubungan antara dua atau lebih jadual. Kekunci asing mentakrifkan perkaitan antara satu jadual dengan jadual lain, membolehkan kami mendapatkan maklumat daripada dua jadual dan menggabungkannya melalui pertanyaan bersama.

2. Gunakan PDO untuk mengakses pangkalan data

PDO (Objek Data PHP) ialah cara standard untuk mengakses pangkalan data dalam PHP. Kita boleh menggunakan PDO untuk mengakses pelbagai pangkalan data hubungan (seperti MySQL, PostgreSQL, dsb.) . Menggunakan PDO untuk mengendalikan pangkalan data boleh meningkatkan kemudahalihan program dan meningkatkan keselamatan program.

Dalam PHP, kita boleh menggunakan kelas PDO untuk memulakan sambungan pangkalan data. Antaranya, parameter yang perlu disediakan oleh pengguna termasuk jenis pangkalan data, nama hos, nama pangkalan data, nama pengguna dan kata laluan, dsb. Selepas permulaan, kita boleh menggunakan contoh PDO untuk melaksanakan pertanyaan SQL dan memproses keputusan pertanyaan.

Berikut ialah contoh penggunaan PDO untuk mengakses pangkalan data MySQL:

<?php
try {
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>
Salin selepas log masuk

Melaksanakan kod di atas akan memilih jadual FOO dalam MySQL dan mencetak hasil pertanyaan.

3. Gunakan PHP untuk melaksanakan mod ORM

Apabila melaksanakan mod ORM, kita perlu menggunakan objek dan kelas PHP untuk menerangkan jadual dan lajur dalam pangkalan data. Kita perlu menentukan kelas yang sepadan untuk setiap jadual dan menukar lajur dalam jadual kepada atribut kelas. Untuk melaksanakan mod ORM, kami juga perlu memperkenalkan lapisan capaian pangkalan data untuk mengendalikan pangkalan data dan menukar hasil pertanyaan kepada objek kelas PHP. Berikut adalah langkah pembangunan untuk melaksanakan mod ORM menggunakan PHP:

1 Cipta sambungan pangkalan data MySQL

Dalam PHP, kita boleh menggunakan PDO untuk menyambung ke pangkalan data MySQL. Berikut ialah contoh kod untuk membuka sambungan pangkalan data MySQL:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
Salin selepas log masuk

Dalam kod di atas, kami membuat sambungan ke pangkalan data MySQL dan menetapkan mod ralat PDO kepada mod pengecualian. Apabila menggunakan PDO, mod pengecualian membolehkan kami mengendalikan ralat yang mungkin berlaku dalam program dengan lebih mudah.

2. Tentukan kelas ORM

Untuk melaksanakan mod ORM, kita perlu mentakrifkan kelas ORM yang sepadan dengan jadual dan menukar lajur dalam jadual kepada atribut kelas. Berikut ialah contoh kod untuk kelas ORM:

<?php
class User {
    private $id;
    private $name;
    private $email;
    private $password;

    public function __construct($id, $name, $email, $password) {
        $this->id = $id;
        $this->name = $name;
        $this->email = $email;
        $this->password = $password;
    }

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function getEmail() {
        return $this->email;
    }

    public function setEmail($email) {
        $this->email = $email;
    }

    public function getPassword() {
        return $this->password;
    }

    public function setPassword($password) {
        $this->password = $password;
    }
}
?>
Salin selepas log masuk

Dalam kod di atas, kami mencipta kelas Pengguna dan menukar lajur id, nama, e-mel dan kata laluan dalam jadual kepada atribut kelas . Kami juga mentakrifkan pembina kelas dan satu siri kaedah getter dan setter.

3. Laksanakan lapisan akses data ORM

Untuk melaksanakan mod ORM, kami juga perlu melaksanakan lapisan akses data untuk mengendalikan pangkalan data. Berikut ialah kod sampel lapisan akses data ringkas:

<?php
class UserDAO {
    private $pdo;

    public function __construct(PDO $pdo) {
        $this->pdo = $pdo;
    }

    public function getUserById($id) {
        $stmt = $this->pdo->prepare('SELECT * FROM user WHERE id = :id');
        $stmt->execute(array('id' => $id));
        $data = $stmt->fetch();
        if ($data) {
            return new User($data['id'], $data['name'], $data['email'], $data['password']);
        }else{
            return null;
        }
    }

    public function saveUser(User $user) {
        if ($user->getId()) {
            // update
            $stmt = $this->pdo->prepare('UPDATE user SET name = :name, email = :email, password = :password WHERE id = :id');
            $stmt->execute(array('name' => $user->getName(), 'email' => $user->getEmail(), 'password' => $user->getPassword(), 'id' => $user->getId()));
        } else {
            // insert
            $stmt = $this->pdo->prepare('INSERT INTO user (name, email, password) VALUES (:name, :email, :password)');
            $stmt->execute(array('name' => $user->getName(), 'email' => $user->getEmail(), 'password' => $user->getPassword()));
            $user->setId($this->pdo->lastInsertId());
        }
    }

    public function deleteUser(User $user) {
        $stmt = $this->pdo->prepare('DELETE FROM user WHERE id = :id');
        $stmt->execute(array('id' => $user->getId()));
    }
}
?>
Salin selepas log masuk

Dalam kod di atas, kami mencipta kelas UserDAO, yang digunakan untuk mengendalikan pangkalan data dan mengembalikan objek Pengguna. Kaedah getUserById dalam kelas ini mendapatkan maklumat pengguna dengan id yang ditentukan daripada pangkalan data, kaedah saveUser mengemas kini atau memasukkan maklumat pengguna ke dalam pangkalan data dan kaedah deleteUser digunakan untuk memadam maklumat pengguna.

4. Gunakan kelas ORM

Selepas melaksanakan mod ORM, kita boleh menggunakan objek ORM seperti objek biasa tanpa menulis sebarang pertanyaan SQL secara manual. Di bawah ialah contoh kod untuk kelas ORM:

<?php
// create a new user
$user = new User(null, &#39;John Doe&#39;, &#39;john@example.com&#39;, &#39;password&#39;);
$userDAO = new UserDAO($pdo);
$userDAO->saveUser($user);

// find a user by id
$user = $userDAO->getUserById(1);

// update a user's name
$user->setName('Jane Doe');
$userDAO->saveUser($user);

// delete a user
$userDAO->deleteUser($user);
?>
Salin selepas log masuk

Dalam kod di atas, kami mencipta pengguna baharu dan memasukkan pengguna ke dalam pangkalan data. Kemudian, kami menggunakan kaedah getUserById untuk mencari maklumat pengguna dengan ID 1. Kami boleh mengemas kini nama pengguna itu menggunakan kaedah setter dan kemudian menyimpan perubahan pada pangkalan data menggunakan kaedah saveUser. Akhir sekali, kami memadam pengguna menggunakan kaedah deleteUser.

Kesimpulan

Dalam artikel ini, kami memperkenalkan cara untuk melaksanakan corak lapisan kegigihan objek menggunakan PHP. Mula-mula, kami mempelajari asas pangkalan data hubungan, dan kemudian melihat dengan lebih mendalam tentang penggunaan PHP PDO untuk menyambung ke pangkalan data. Dengan memahami pangkalan data hubungan dan kaedah sambungan PDO, kami boleh melaksanakan sendiri mod ORM secara manual. Dengan mentakrifkan kelas ORM dan lapisan akses data, kami boleh menyepadukan operasi pangkalan data dengan lancar ke dalam kod PHP kami. Penggunaan mod ORM boleh memudahkan kod kami ke tahap yang besar dan mengendalikan operasi pangkalan data dengan lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan lapisan kegigihan objek dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

See all articles