Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Doktrin dengan CakePHP?

Bagaimana untuk menggunakan Doktrin dengan CakePHP?

王林
王林asal
2023-06-03 16:41:011336semak imbas

CakePHP ialah rangka kerja PHP popular yang menyediakan banyak ciri berkuasa untuk membangunkan aplikasi web dengan pantas. Pada masa yang sama, Doktrin ialah rangka kerja ORM yang berkuasa yang membolehkan kami mengurus pangkalan data dengan lebih mudah. Dalam artikel ini, kami akan menumpukan pada penggunaan Doktrin dengan CakePHP.

  1. Pasang Doktrin

Mula-mula, kita perlu memasang Doktrin. Di terminal, kita boleh memasangnya melalui Komposer:

composer require doctrine/orm

Selepas pemasangan selesai, kita perlu mengkonfigurasi Doktrin. Dalam fail app/config/bootstrap.php, kita perlu memuatkan autoloader Komposer dan mendaftarkan perkhidmatan Doktrin:

// 加载Composer自动加载器
require ROOT . '/vendor/autoload.php';

// 注册Doctrine服务
use DoctrineORMToolsSetup;
use DoctrineORMEntityManager;

$paths = array(ROOT . '/src/Entity');

$config = Setup::createAnnotationMetadataConfiguration($paths, true);
$conn = array(
    'driver'   => 'pdo_mysql',
    'user'     => 'username',
    'password' => 'password',
    'dbname'   => 'database_name',
);

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

Fail konfigurasi ini akan memberitahu Doktrin cara menyambung ke pangkalan data dan tempat kelas entiti kami disimpan Lokasi.

  1. Mencipta kelas entiti

Seterusnya, kita perlu mencipta kelas entiti untuk mewakili jadual dan lajur dalam pangkalan data. Kami boleh menggunakan anotasi Doktrin untuk mentakrifkan kelas entiti ini:

<?php

namespace AppEntity;

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 * @ORMTable(name="users")
 */
class User
{
    /**
     * @ORMId 
     * @ORMColumn(type="integer")
     * @ORMGeneratedValue
     */
    private $id;

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

    /**
     * @ORMColumn(type="string", length=100, unique=true)
     */
    private $email;

    /**
     * @ORMColumn(type="datetime")
     */
    private $created_at;

    /**
     * @ORMColumn(type="datetime")
     */
    private $updated_at;

    // Getters and setters
}

Dalam kelas entiti ini, kami menggunakan anotasi untuk menentukan nama, nama jadual, nama lajur, jenis dan panjang entiti.

  1. Jana struktur jadual pangkalan data

Kami telah menentukan kelas entiti, dan kini kami perlu menjana struktur jadual pangkalan data berdasarkan kelas entiti. Dalam terminal, kita boleh menggunakan arahan Doktrin untuk mencapai:

vendor/bin/doctrine orm:schema-tool:create

Selepas pelaksanaan selesai, jadual bernama "pengguna" akan dibuat dalam pangkalan data, yang secara automatik akan mengandungi lajur "id" dan " nama" ”, “e-mel”, “created_at” dan “updated_at” dsb.

  1. Menggunakan Kelas Entiti

Kini, kami bersedia untuk menggunakan kelas entiti untuk melaksanakan operasi pangkalan data. Dalam program ini, kami boleh mencipta, mengemas kini dan membuat pertanyaan rekod dengan membuat instantiat kelas entiti:

<?php

$user = new User();
$user->setName('John Doe');
$user->setEmail('john@example.com');

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

$user = $entityManager->getRepository(User::class)->find($id);
$user->setName('Jane Doe');

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

Dalam kod ini, kami menggunakan kelas entiti dan EntityManager untuk melaksanakan operasi pangkalan data.

  1. Kesimpulan

Melalui langkah di atas, kami telah berjaya menggunakan Doktrin dalam CakePHP. Semasa penggunaan, kita perlu ingat bahawa kelas entiti mewakili struktur jadual pangkalan data, dan EntityManager mewakili sambungan pangkalan data. Gunakannya untuk melaksanakan operasi pangkalan data dengan cepat. Jika anda ingin mengetahui lebih lanjut tentang penggunaan Doktrin, adalah disyorkan untuk merujuk dokumentasi rasmi.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Doktrin dengan CakePHP?. 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