Teknologi ORM dalam PHP

王林
Lepaskan: 2023-05-23 12:32:01
asal
1423 orang telah melayarinya

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.

  1. Apakah teknologi ORM?

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.

  1. Rangka kerja ORM yang biasa digunakan dalam PHP

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.

  1. Penggunaan asas ORM

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';
}
Salin selepas log masuk

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;
Salin selepas log masuk

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();
Salin selepas log masuk

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']);
Salin selepas log masuk

juga boleh digunakan Kaedah save() mengemas kini rekod sedia ada:

$user = User::find(1);
$user->email = 'newemail@example.com';
$user->save();
Salin selepas log masuk

(4) Padam data

Dalam Eloquent, kita boleh menggunakan kaedah delete() untuk memadam rekod:

$user = User::find(1);
$user->delete();
Salin selepas log masuk

(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);
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan