Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk menggunakan Propel dengan CakePHP?

Bagaimana untuk menggunakan Propel dengan CakePHP?

王林
Lepaskan: 2023-06-03 19:22:01
asal
1335 orang telah melayarinya

CakePHP ialah rangka kerja MVC yang popular, manakala Propel ialah rangka kerja ORM berasaskan ORM. Menggabungkan kedua-dua rangka kerja ini memudahkan pembangun mencipta dan mengurus model pangkalan data. Artikel ini akan memperkenalkan secara ringkas cara menggunakan Propel dengan CakePHP.

Langkah 1: Pasang Propel

Mula-mula, kita perlu memasang Propel dalam projek CakePHP. Muat turun versi terkini dari tapak web Propel dan nyahzipnya. Kemudian, salin folder unzip ke dalam folder vendor projek CakePHP kami.

Langkah 2: Konfigurasikan Propel

Seterusnya, kita perlu mengkonfigurasi Propel. Cipta fail bernama propel.php dan letakkan dalam folder konfigurasi projek kami. Dalam fail ini kami perlu menentukan butiran sambungan pangkalan data kami. Sebagai contoh, berikut ialah konfigurasi untuk menyambung ke pangkalan data MySQL:

<?php
$config = [
    'propel' => [
        'database' => [
            'connections' => [
                'default' => [
                    'adapter' => 'mysql',
                    'dsn' => 'mysql:host=localhost;dbname=mydatabase',
                    'user' => 'myuser',
                    'password' => 'mypassword',
                    'attributes' => [],
                ],
            ],
        ],
        'runtime' => [
            'defaultConnection' => 'default',
            'connections' => ['default'],
        ],
        'generator' => [
            'defaultConnection' => 'default',
            'connections' => ['default'],
        ],
    ],
];
Salin selepas log masuk

Dalam fail konfigurasi di atas, kami menyatakan butiran sambungan MySQL termasuk nama hos, nama pangkalan data, nama pengguna dan kata laluan. Dengan merujuk fail ini, dan memuatkannya untuk konfigurasi CakePHP, kami akan dapat menggunakan Propel.

Langkah 3: Jana model

Propel perlu menggunakan fail XML untuk mentakrifkan model pangkalan data kami. Dalam projek CakePHP kami, kami boleh meletakkan fail ini dalam folder config/propel/schema.xml. Dalam folder ini kami boleh mencipta satu atau lebih fail XML untuk menentukan model kami.

Sebagai contoh, dengan mengandaikan kami mempunyai jadual bernama "pengguna" dalam pangkalan data kami, kami boleh menggunakan fail XML berikut untuk mentakrifkannya:

<?xml version="1.0" encoding="UTF-8"?>
<database name="mydatabase" defaultIdMethod="native">
    <table name="users" phpName="User">
        <column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
        <column name="name" type="VARCHAR" size="255" required="true"/>
        <column name="email" type="VARCHAR" size="255" required="true"/>
        <column name="password" type="VARCHAR" size="255" required="true"/>
    </table>
</database>
Salin selepas log masuk

Dalam fail XML di atas, kami mentakrifkan A jadual bernama "pengguna", yang mempunyai empat lajur: id, nama, e-mel dan kata laluan. Kami juga memberikan jadual nama kelas PHP yang dipanggil "Pengguna".

Menggunakan fail XML ini, kami boleh menggunakan Propel untuk menjana model pangkalan data kami. Dalam projek CakePHP kami, kami boleh menggunakan arahan berikut untuk menjana model ini:

bin/propel sql:build
bin/propel sql:insert
bin/propel model:build
Salin selepas log masuk

Perintah ini akan menjana skema SQL kami, memasukkan data ujian kami dan menjana kelas PHP untuk model kami.

Langkah Empat: Menggunakan Model

Sekarang kami telah menghasilkan model kami, kami boleh menggunakannya dalam aplikasi CakePHP kami. Kami perlu memuatkan model Propel dalam model CakePHP kami. Sebagai contoh, katakan kita mempunyai model CakePHP yang dipanggil "Pengguna", di mana kita boleh menggunakan kod berikut untuk memuatkan model Propel:

class Users extends AppModel {
    public $useTable = false;
    public function __construct($id = false, $table = null, $ds = null) {
        parent::__construct($id, $table, $ds);
        require_once(APP . 'Vendor' . DS . 'propel' . DS . 'runtime' . DS . 'lib' . DS . 'Propel.php');
        Propel::init(APP . 'Config' . DS . 'propel.php');
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami merujuk fail Propel menggunakan require_once, dan Mulakan Propel menggunakan kaedah Propel::init. Dengan cara ini, kita boleh menggunakan model Propel.

Sebagai contoh, dengan mengandaikan kami ingin mendapatkan semua pengguna daripada jadual "pengguna" kami, kami boleh menggunakan kod berikut:

$users = UserQuery::create()->find();
Salin selepas log masuk

Dalam contoh ini, kami menggunakan kelas "UserQuery" untuk membuat pertanyaan pengguna kami. Kami juga boleh menggunakan kelas Propel lain untuk melaksanakan operasi memasukkan, mengemas kini dan memadam.

Ringkasan

Dalam artikel ini, kami memperkenalkan secara ringkas cara menggunakan Propel dengan CakePHP. Kami belajar cara memasang Propel, mengkonfigurasi Propel, menjana model dan menggunakan model. Dengan menggabungkan kedua-dua rangka kerja ini, kami boleh mengurus dan memanipulasi model pangkalan data dengan lebih mudah.

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