Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan Propel dengan CakePHP?
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'], ], ], ];
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>
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
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'); } }
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();
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!