Dengan peningkatan populariti aplikasi web, semakin ramai orang mula menggunakan PHP sebagai bahasa skrip bahagian pelayan mereka. PHP telah menjadi bahasa arus perdana untuk pembangunan aplikasi Web kerana ciri-cirinya seperti kemudahan pembelajaran dan penggunaan, kecekapan pembangunan yang tinggi, dan prestasi cemerlang. Walau bagaimanapun, untuk mengurus pangkalan data dengan lebih baik, PHP perlu bergantung pada teknologi ORM. Artikel ini akan memperkenalkan dan menganalisis teknologi ORM dalam PHP.
ORM ialah singkatan daripada "Pemetaan Hubungan Objek", iaitu teknologi pemetaan antara objek dan pangkalan data hubungan. Ringkasnya, ORM boleh membantu kami memetakan data dalam pangkalan data hubungan ke objek program kami dan mencapai ketekunan data.
Faedah teknologi ORM ialah pengaturcara boleh menumpukan pada logik program tanpa memberi perhatian kepada bahasa pertanyaan pangkalan data (seperti SQL). ORM juga boleh melengkapkan pemprosesan beberapa perhubungan antara objek entiti secara automatik, seperti pertanyaan gabungan atau subkueri, dan rangka kerja ORM boleh membantu kami mengendalikan mesej ralat semasa akses pangkalan data, yang mudah dan mudah digunakan.
Dalam PHP, terdapat banyak rangka kerja ORM yang boleh kita gunakan. Artikel ini akan memperkenalkan tiga rangka kerja ORM yang paling biasa digunakan dalam PHP:
(1) Doktrin
Doktrin ialah salah satu rangka kerja ORM yang paling biasa digunakan dalam komuniti PHP. Ia ditulis dalam gaya berorientasikan objek sepenuhnya dan menyediakan fungsi seperti pengendalian pengecualian, pemprosesan transaksi dan perkaitan model. Doktrin menggunakan konfigurasi Model berasaskan XML yang fleksibel untuk memulakan pangkalan data dengan cepat dan menjana jadual pangkalan data yang sepadan.
(2) Fasih
Eloquent ialah rangka kerja ORM yang disertakan dengan rangka kerja pembangunan Laravel Ia menyediakan pembina pertanyaan dan perhubungan model. Eloquent menggunakan mod Rekod Aktif untuk mengendalikan pangkalan data secara lalai, menjadikan kecekapan pembangunannya sangat tinggi.
(3) Propel
Propel ialah satu lagi rangka kerja ORM yang popular dalam komuniti PHP Ia menyediakan fungsi ORM yang lengkap dan dua mod Active Record dan Data Mapper. Propel mempunyai keupayaan Skema yang berkuasa yang boleh menentukan pemetaan kelas dan jadual menggunakan YAML mudah.
Seterusnya, kami akan memperkenalkan penggunaan asas ORM, mengambil Eloquent sebagai contoh.
(1) Bina model
Dalam Eloquent, kita boleh mencipta kelas PHP mudah untuk mentakrifkan model jadual data. Berikut ialah contoh:
<?php use IlluminateDatabaseEloquentModel; class User extends Model { protected $table = 'users'; }
Dalam kod di atas, kami mentakrifkan kelas Pengguna dan mewarisi kelas Model Eloquent. Atribut $table mentakrifkan nama jadual pangkalan data yang sepadan dengan model.
(2) Data pertanyaan
Dalam Eloquent, kita boleh bertanya data dalam dua cara: secara langsung menggunakan kelas model atau menggunakan pembina pertanyaan.
Gunakan kelas model:
$user = User::find(1); echo $user->name;
Kaedah find() di sini ialah kaedah yang dirangkumkan oleh Eloquent dan digunakan untuk menanyakan rekod dengan kunci utama 1. Kita boleh menggunakan sifat-sifat di dalamnya.
Gunakan pembina pertanyaan:
$users = DB::table('users')->where('votes', '>', 100)->get();
Di sini kami menggunakan $query builder, yang boleh membantu kami membina pernyataan pertanyaan SQL dengan mudah.
(3) Tambah dan kemas kini data
Dalam Eloquent, kita boleh menggunakan kaedah create() untuk memasukkan rekod baharu dalam pangkalan data:
$user = User::create(['name' => 'John Doe', 'email' => 'johndoe@example.com']);
juga boleh digunakan Kaedah save() mengemas kini rekod sedia ada:
$user = User::find(1); $user->email = 'newemail@example.com'; $user->save();
(4) Padam data
Dalam Eloquent, kita boleh menggunakan kaedah delete() untuk memadam rekod:
$user = User::find(1); $user->delete();
(5) Persatuan Model
Dalam Eloquent, kita boleh menggunakan persatuan model untuk membantu kita dengan cepat dan hanya mentakrifkan hubungan antara model. Sebagai contoh, kita boleh menggunakan perhubungan satu-dengan-satu, satu-ke-banyak dan banyak-ke-banyak untuk menentukan hubungan antara model. Berikut ialah contoh:
<?php namespace AppModels; use IlluminateDatabaseEloquentModel; class User extends Model { public function posts() { return $this->hasMany(Post::class); } } class Post extends Model { public function user() { return $this->belongsTo(User::class); } }
Seperti yang ditunjukkan dalam kod di atas, kita boleh mentakrifkan perhubungan satu-dengan-banyak menggunakan kaedah $hasMany dan $belongsTo. Di sini, setiap pengguna boleh mempunyai berbilang artikel dan setiap artikel adalah milik seorang pengguna sahaja.
4. Ringkasan
Artikel ini memperkenalkan dan menganalisis teknologi ORM dalam PHP, termasuk definisi teknologi ORM, rangka kerja ORM biasa, kegunaan asas ORM dan perkaitan model. Teknologi ORM membantu kami mengurus pangkalan data dengan lebih baik dan menjadikan pembangunan lebih cekap dan mudah. Dalam pembangunan sebenar, kita boleh memilih rangka kerja ORM yang sesuai mengikut keperluan khusus dan mengaplikasikannya.
Atas ialah kandungan terperinci Teknologi ORM dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!