Dengan pembangunan bahasa PHP, semakin ramai pembangun mula menggunakannya untuk membina aplikasi web. Apabila membina aplikasi web menggunakan PHP, bahagian penting ialah sambungan pangkalan data Walaupun terdapat banyak perpustakaan sambungan pangkalan data untuk dipilih, Doktrin adalah salah satu perpustakaan yang dipandang tinggi. Dalam artikel ini, kami akan meneroka aplikasi Doktrin dalam PHP8.0.
Apakah itu Doktrin?
Doktrin ialah perpustakaan sambungan pangkalan data berasaskan PHP yang menyediakan cara berorientasikan objek untuk mengurus data dalam aplikasi. Doktrin membenarkan pembangun menggunakan pemetaan hubungan objek (ORM) untuk berinteraksi dengan pangkalan data, yang mengurangkan keperluan untuk menulis SQL secara manual. Pada masa yang sama, Doctrine juga menyediakan pembina pertanyaan untuk memudahkan penyiasatan pangkalan data.
Berbanding dengan pertanyaan SQL tradisional, kelebihan pembina pertanyaan Doctrine ialah ia menggunakan pendekatan berorientasikan objek untuk membina pertanyaan, yang menjadikan kod lebih mudah dibaca dan lebih mudah diselenggara. Contohnya, kod berikut ialah pertanyaan ringkas yang dilaksanakan menggunakan pembina pertanyaan Doktrin:
<?php // 获取实体管理器 $entityManager = $this->getDoctrine()->getManager(); // 创建一个查询构建器 $queryBuilder = $entityManager->createQueryBuilder(); // 构建查询 $query = $queryBuilder->select('u') ->from('AppBundleEntityUser', 'u') ->where('u.username = :username') ->setParameter('username', $username) ->getQuery(); // 获取结果 $user = $query->getOneOrNullResult();
Kod di atas akan membuat pertanyaan untuk rekod pengguna bernama username
dan kelas entiti User
ditakrifkan seperti berikut:
<?php namespace AppBundleEntity; use DoctrineORMMapping as ORM; /** * @ORMEntity * @ORMTable(name="users") */ class User { /** * @ORMId * @ORMGeneratedValue(strategy="AUTO") * @ORMColumn(type="integer") */ private $id; /** * @ORMColumn(type="string") */ private $username; /** * @ORMColumn(type="string") */ private $password; // ... }
Dapat dilihat bahawa menggunakan pembina pertanyaan untuk membuat pertanyaan menjadikan kod lebih ringkas dan lebih mudah dibaca.
Ciri baharu Doktrin dalam PHP8.0
Doktrin mempunyai beberapa ciri baharu dalam PHP8.0 Mari perkenalkan satu persatu di bawah.
Doktrin kini menyokong peta bersarang. Ini bermakna pengguna boleh memetakan kelas terbenam ke dalam pertanyaan SQL, serupa dengan struktur bersarang dalam pangkalan data. Contohnya, pengguna mungkin mahu menggunakan peta bersarang untuk memetakan kursus dan bab kursus. Kursus boleh mempunyai kelas bersarang, setiap kelas bersarang mewakili bab kursus yang sepadan.
Terdapat pemetaan kunci pesimis baharu bernama pemeta Kunci Pesimis Baharu dalam Doktrin. Pemeta ini membolehkan penguncian pesimis baris tertentu dalam pertanyaan. Ini sangat berguna untuk sistem konkurensi tinggi untuk mengelakkan masalah berbilang pengguna mengubah suai rekod yang sama pada masa yang sama.
Doktrin kini menyokong jenis medan UUID (Universally Unique Identifier). Ini membolehkan UUID digunakan sebagai kunci utama entiti atau medan lain.
Dalam versi lepas, kaedah Query::setParameter()
diperlukan untuk menyediakan parameter dalam susunan yang dipratentukan. Doktrin kini membenarkan parameter dibekalkan secara terbalik, meningkatkan fleksibiliti kod.
Ringkasan
Dalam PHP8.0, Doctrine menyediakan banyak fungsi berguna untuk membantu pembangun mengurus data dalam aplikasi dengan lebih mudah. Berbanding dengan pertanyaan SQL tradisional, kelebihan pembina pertanyaan Doctrine ialah ia menggunakan pendekatan berorientasikan objek untuk membina pertanyaan, yang menjadikan pertanyaan lebih mudah difahami dan diselenggara. Selain itu, Doktrin juga menyokong ciri baharu seperti peta bersarang, pemetaan kunci pesimis, jenis medan UUID, dsb., menjadikan pembangunan lebih cekap dan fleksibel. Jika anda sedang membina aplikasi web dan memerlukan perpustakaan sambungan pangkalan data yang berkuasa dan boleh dipercayai, Doktrin ialah pilihan yang patut dipertimbangkan.
Atas ialah kandungan terperinci Pustaka sambungan pangkalan data dalam PHP8.0: Doktrin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!