Alat ORM dan DAL menyediakan keupayaan penjanaan kod untuk mencipta kelas entiti, repositori dan artifak kod lain untuk memudahkan interaksi pangkalan data. Alat ORM (seperti Doctrine, Eloquent) menyediakan penjana kod untuk menjana kelas entiti secara automatik. Perpustakaan DAL seperti DBAL menyediakan penjanaan kod tersuai untuk menjana kod khusus berdasarkan skema pangkalan data. Untuk mengekalkan kod yang dijana, alat ORM menyediakan keupayaan untuk mengemas kini skema untuk menyegerakkan kod dan perubahan skema pangkalan data.
Alat Pemetaan Hubungan Objek (ORM) dan perpustakaan Lapisan Abstraksi Pangkalan Data (DAL) sangat memudahkan interaksi dengan pangkalan data. Walau bagaimanapun, untuk mengekalkan asas kod ini, terdapat cabaran berterusan yang perlu ditangani, iaitu penjanaan dan penyelenggaraan kod.
Alat ORM (seperti Doktrin, Fasih) boleh menjana kelas entiti, repositori dan artifak kod lain secara automatik melalui penjana kod. Ini menjimatkan banyak kerja manual, terutamanya apabila berurusan dengan skema pangkalan data yang besar. Contohnya, dalam Doktrin, anda boleh menggunakan arahan berikut:
./vendor/bin/doctrine orm:generate-entities App/Entity
Sesetengah perpustakaan DAL menyertakan keupayaan penjanaan kod tersuai yang membenarkan kod khusus dijana untuk pelaksanaan pangkalan data tertentu. Sebagai contoh, perpustakaan DBAL (Lapisan Abstraksi Pangkalan Data) mengandungi penjana kod untuk menjana kod PDO berdasarkan skema pangkalan data:
$conn->getConfiguration()->setSQLLogger(new SqliteDbalLog());
Apabila skema pangkalan data berubah, kod yang dihasilkan juga berubah Mesti dikemas kini dengan sewajarnya. Untuk tujuan ini, alatan ORM selalunya menyediakan kefungsian mod kemas kini, seperti:
./vendor/bin/doctrine orm:schema-tool:update --force
Selain kod yang dijana, mungkin juga terdapat kod tulisan tangan dalam aplikasi, seperti pertanyaan tersuai, disimpan prosedur atau fungsi Tersimpan. Adalah penting untuk memastikan kod ini selari dengan skema pangkalan data, yang boleh dicapai dengan mengemas kininya secara manual apabila skema berubah.
use Doctrine\ORM\Tools\Setup; use Doctrine\ORM\EntityManager; // 创建元数据配置 $isDevMode = true; $metadataConfig = Setup::createAnnotationMetadataConfiguration([__DIR__ . "/src"], $isDevMode); // 创建 entityManager $entityManager = EntityManager::create(['driver' => 'pdo_sqlite', 'path' => __DIR__ . '/db.sqlite'], $metadataConfig); // 保存用户 $user = new User(); $user->setUsername('admin'); $user->setPassword('secret'); $entityManager->persist($user); $entityManager->flush();
use PDO; // 连接到数据库 $pdo = new PDO('sqlite:./db.sqlite'); // 准备并执行查询 $sql = "SELECT * FROM users WHERE username = :username"; $stmt = $pdo->prepare($sql); $stmt->execute([':username' => 'admin']); // 获取结果 $result = $stmt->fetch(PDO::FETCH_ASSOC); // 填充实体 $user = new User(); $user->setUsername($result['username']); $user->setPassword($result['password']);
Kod dalam ORM dan DAL boleh diurus dengan berkesan dengan mengautomasikan penjanaan kod dan melaksanakan strategi penyelenggaraan yang sesuai. Ini mengurangkan kerja manual, meningkatkan kualiti kod dan memastikan asas kod disegerakkan dengan skema pangkalan data.
Atas ialah kandungan terperinci Penjanaan dan penyelenggaraan kod dalam pemetaan hubungan objek PHP dan lapisan abstraksi pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!