Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang penggunaan rangka kerja ORM dalam PHP

Penjelasan terperinci tentang penggunaan rangka kerja ORM dalam PHP

WBOY
WBOYasal
2023-06-23 11:22:391674semak imbas

Rangka kerja ORM (Object-Relational Mapping) ialah teknologi yang digunakan untuk memetakan model objek dalam bahasa pengaturcaraan berorientasikan objek kepada pangkalan data hubungan. Ia membolehkan pembangun mengendalikan pangkalan data dalam cara berorientasikan objek tanpa mengendalikan bahasa SQL secara langsung. Dalam bidang pembangunan PHP, rangka kerja ORM juga telah digunakan secara meluas. Artikel ini akan memperkenalkan secara terperinci cara menggunakan rangka kerja ORM dalam PHP.

1. Kelebihan rangka kerja ORM
Menggunakan rangka kerja ORM mempunyai kelebihan berikut:

1 Meningkatkan kecekapan pembangunan: Rangka kerja ORM boleh menyembunyikan butiran teknikal pangkalan data dan memudahkan proses pelaksanaan kod data akses. , meningkatkan kecekapan pembangunan dengan berkesan.

2 Jadikan kod lebih modular: Rangka kerja ORM boleh merangkum model data, menjadikan kod lebih modular dan lebih mudah diselenggara.

3 Kurangkan kerumitan kod: Rangka kerja ORM mengabstrak kerumitan pernyataan SQL, mengurangkan kerumitan kod dan memudahkan pembangun untuk beroperasi.

2. Rangka kerja ORM yang biasa digunakan
Dalam bidang pembangunan PHP, terdapat banyak rangka kerja ORM untuk dipilih Antara rangka kerja ORM yang popular termasuk:

  1. Doktrin: Doktrin ialah Rangka kerja ORM yang berkuasa yang menyediakan operasi CRUD lengkap dan menyokong pelbagai jenis pangkalan data. Anda perlu mempelajari konfigurasi dan peraturan penggunaan tertentu semasa penggunaan.
  2. Propel: Propel ialah rangka kerja ORM yang mudah dipelajari dan digunakan Ia menyokong pelbagai jenis pangkalan data dan menyediakan pelbagai fungsi pertanyaan dan fungsi operasi dengan cepat.
  3. Laravel Eloquent: Laravel Eloquent ialah komponen ORM bagi rangka kerja Laravel Ia menyediakan API operasi data yang mudah dan digunakan secara meluas dalam pembangunan Laravel.

3. Penggunaan rangka kerja ORM
Seterusnya, kita akan menggunakan kerangka kerja ORM Doktrin dan pangkalan data MySQL sebagai contoh untuk memperkenalkan penggunaan rangka kerja ORM.

1. Pasang Doktrin
Anda boleh memasang rangka kerja ORM Doktrin melalui Komposer, gunakan arahan berikut untuk memasang:

komposer memerlukan doktrin/orm

2 pangkalan data sambungan
Sebelum menggunakan Doktrin untuk operasi data, anda perlu menyambungkannya ke pangkalan data hubungan. Dalam fail config.php, tambah maklumat konfigurasi pangkalan data berikut:

gunakan DoctrineORMToolsSetup;
gunakan DoctrineORMEntityManager;

require_once "vendor/autoload.php";

$ isDevMode = true;
$config = Persediaan::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);

$conn = array(

'driver' => 'pdo_mysql',
'host' => 'localhost',
'port' => 3306,
'dbname' => 'test_db',
'user' => 'root',
'password' => 'root',

);

$entityManager = EntityManager::create($conn, $config);

Pembolehubah $config di sini ialah pilihan konfigurasi Doktrin ORM. Fungsi createAnnotationMetadataConfiguration() melepasi direktori tempat kelas entiti terletak ke konfigurasi, membiarkan Doctrine mengetahui di mana mereka berada. Pembolehubah $conn ialah maklumat sambungan pangkalan data, yang memberitahu Doktrin cara menyambung ke pangkalan data MySQL.

3. Tentukan kelas entiti
Dalam Doktrin, kelas entiti sepadan dengan jadual dalam pangkalan data hubungan perlu dianotasi dengan anotasi @Entity, iaitu:

gunakan DoctrineORMMapping sebagai ORM. ;

/**

  • @ORMEntity
  • @ORMTable(name="users")
    */

Pengguna kelas
{

/**
 * @ORMId
 * @ORMGeneratedValue
 * @ORMColumn(type="integer")
 */
private $id;

/**
 * @ORMColumn(type="string")
 */
private $name;

/**
 * @ORMColumn(type="string")
 */
private $email;

public function getId()
{
    return $this->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;
}

}

Kelas pengguna di sini Ia adalah kelas entiti ringkas Ia mempunyai atribut $id, yang merupakan jenis integer kenaikan automatik dan dianotasi dengan anotasi @Id. Setiap anotasi @ORMColumn dalam kelas entiti mentakrifkan lajur yang jenis dan namanya sepadan dengan nama lajur dan jenis dalam pangkalan data hubungan.

4. Lakukan operasi data
Menggunakan Doktrin untuk melaksanakan operasi data boleh dilakukan melalui contoh EntityManager, contohnya:

$user = new User();
$user ->setName ('UserName');
$user->setEmail('user@email.com');

$entityManager->persist($user);
$ entityManager-> flush();

Di sini, rekod baharu dibuat dengan membuat seketika objek Pengguna dan ditambahkan pada baris gilir operasi Doctrine melalui kaedah $entityManager->persist() dan kemudian melalui $ kaedah entityManager- >flush() menyimpan data ke pangkalan data.

Jika anda perlu mendapatkan data, anda boleh menggunakan kaedah $entityManager->getRepository() untuk mendapatkan objek repositori kelas entiti Objek repositori kelas entiti menyediakan pelbagai kaedah untuk menanyakan rekod pangkalan data . Contohnya, untuk mendapatkan data bagi pengguna bernama "UserName", anda akan menggunakan arahan berikut:

$userRepository = $entityManager->getRepository(User::class);
$theUser = $ userRepository- >findOneBy(['name' => 'UserName']);

Di sini pembolehubah $theUser digunakan untuk menyimpan hasil pertanyaan dan kaedah findOneBy() menggunakan keadaan pertanyaan yang ditentukan ( di sini atribut nama adalah sama dengan "Nama Pengguna") untuk mencari hasil tunggal.

4. Ringkasan
Penggunaan rangka kerja ORM boleh meningkatkan kecekapan pembangunan, mengurangkan kerumitan kod dan meningkatkan kebolehselenggaraan kod. Dalam bidang pembangunan PHP, Doctrine, Propel dan Laravel Eloquent semuanya adalah rangka kerja ORM yang digunakan secara meluas. Untuk menggunakan rangka kerja ORM, anda perlu menyambung ke pangkalan data terlebih dahulu, menentukan kelas entiti, dan kemudian menggunakan objek repositori untuk beroperasi pada pangkalan data.

Atas ialah kandungan terperinci Penjelasan terperinci tentang penggunaan rangka kerja ORM dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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