mata teras
Pengenalan kepada RedBeandPhp
Dalam pembangunan aplikasi pesat (RAD) dan prototaip, terdapat banyak alat untuk membantu anda memulakan dengan cepat. Dari cepat bermula ke rangka kerja mini, dari alat binaan seperti komposer kepada pemasang satu klik, dan tentu saja Orm-terdapat banyak cara untuk mempercepatkan pembangunan. Kami akan memberi tumpuan kepada RedBeainphp, ORM unik yang sesuai untuk prototaip.
pemula RedBeandPhp
RedBeandPhp adalah ORM (Object Relational Mapper), tetapi ia lebih daripada sekadar ORM - ia secara dinamik boleh membuat dan mengubah suai skema pangkalan data yang mendasari. Secara tradisinya, anda akan menggunakan Orm sebagai pembungkus untuk skema pangkalan data yang telah dirancang sebelum ini. Ini adalah baik untuk kebanyakan projek, tetapi apabila anda prototaip (atau berfikir semasa melakukannya), setelah itu dilakukan untuk anda di latar belakang dapat mempercepatkan lagi.Apabila anda membuat objek (atau kacang) dengan redbeandphp, skema akan menyesuaikan diri secara automatik selagi anda menyimpannya ke pangkalan data. Ini terpakai walaupun anda cuba menyimpan objek yang tidak mempunyai jadual yang sama!
Pemasangan
Cara paling mudah untuk memasang RedBeandPhp adalah untuk memuat turun pakej All-In-One. Kemudian anda hanya perlu memperkenalkan satu fail. rb.php
mengedarkan kacang
Langkah pertama dalam menggunakan RedBeandPhp adalah untuk "mengedarkan" kacang - ia pada dasarnya adalah objek. Perhatikan bahawa untuk seluruh artikel ini, saya menggunakan "kacang" dan objek secara bergantian.Pengagihan dilakukan oleh kaedah statik kelas Redbean atas "R", yang mengambil jenis sebagai parameter.
Contoh:
$user = R::dispense('user');
$users = R::dispense('user', 10);
mari kita cuba-sila perhatikan penggunaan kaedah statik store
, yang digunakan untuk menulis ke pangkalan data:
$user = R::dispense('user');
Di kebanyakan Orms, ini gagal jika anda belum membuat jadual untuk menyelamatkan pengguna. Walau bagaimanapun, dengan RedBeandPHP, ini akan berjaya kerana ia akan membuat jadual untuk anda. Jika anda melihat pangkalan data anda pada peringkat ini, anda harus melihat jadual seperti ini:
$users = R::dispense('user', 10);
Konvensyen penamaan sangat ketat kerana keperluannya;
Sekarang mari kita lihat bagaimana corak berubah semasa meleleh. Rekod pengguna mungkin memerlukan medan kata laluan - tetapi kami terlupa untuk membuatnya.
jika anda melakukan ini:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;
Kali ini, RedBeandPhp tahu bagaimana untuk menyimpan pengguna, tetapi jadual pangkalan data tidak dapat menampung medan baru. Tidak mengapa - ia hanya menambah satu, prestasi anda kelihatan seperti ini:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
(kandungan berikut adalah serupa dengan teks asal, tetapi struktur ayat dan pelarasan perkataan telah dibuat, dan kedudukan dan format imej tidak berubah)
Jenis data medan
RedBeandPhp akan cuba meneka jenis data medan berdasarkan maklumat yang anda berikan. Jadi jika anda lakukan:
$user->password = 'secret'; R::store($user);
anda akan mendapati bahawa bidang umur telah dicipta sebagai kecil.
Jika jenis medan tidak mencukupi kemudian, redbeainphp akan mengubahnya secara dinamik. Jika anda kini cuba memberikan 3000 kepada umur, lajur akan ditukar kepada Int. Jika anda mengeja nama sebagai "tiga puluh", ia akan berubah kepada Varchar. Tetapkan medan Varchar kepada lebih daripada 255 aksara, ia akan menjadi medan teks, dan sebagainya.
Cari kacang
anda boleh menggunakan kaedah load
untuk memuatkan objek tertentu dengan kunci utama:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>
anda boleh menggunakan kaedah batch
untuk memuatkan pelbagai objek sekaligus (tekan kekunci utama):
$user->age = 30; R::store($user);
Ini akan mengembalikan pelbagai kacang.
Anda juga boleh menggunakan SQL untuk mencari kacang. Parameter kedua kaedah find
pada dasarnya adalah SQL bermula dengan klausa WHERE, tidak termasuk kata kunci di mana itu sendiri. Sebagai contoh, untuk mencari pengguna di bawah umur 20 tahun:
$user = R::load('user', 1);
Perhatikan bahawa kita mengikat parameter, jadi parameter ketiga adalah array. Ini akan mengembalikan pelbagai kacang menggunakan ID sebagai kunci.
anda boleh menambah lebih banyak klausa kepada SQL, seperti:
Count
anda boleh menggunakan kaedah count
untuk mencari bilangan rekod:
$users = R::batch('user', array(1, 2, 3));
Padam
untuk memadam kacang tunggal, gunakan trash
:
$users = R::find('user', 'age < 20');
Untuk memadam pelbagai kacang jenis tertentu, gunakan trashAll
:
$number_of_users = R::count('user');
Untuk memadam semua kacang jenis tertentu, gunakan wipe
:
R::trash($user);
atau, untuk memadam segala -galanya - ini boleh berguna apabila prototaip - anda boleh menggunakan nuke
:
R::trashAll('user');
Hubungan
Seperti mana -mana ORM, hubungan antara objek disokong.
Hubungan satu-ke-banyak menggunakan konsep objek "memiliki" yang berkaitan dengan rujukan. Sebagai contoh, jika pesanan hanya mempunyai satu pengguna, pengguna dipanggil "sendiri" pesanan. Dengan menggunakan nama pembolehubah tertentu, kita boleh mencipta hubungan ini seperti ini:
$user = R::dispense('user');
elemen utama di sini adalah atribut ownOrders
. Jika anda menyemak pangkalan data anda sekarang, anda harus mendapati bahawa RedBeandPhp telah menambah medan user_id
ke jadual pesanan, bersama -sama dengan kunci asing yang sepadan.
Pengguna yang "memiliki" pesanan hanya boleh mengakses sebagai atribut, contohnya:
$users = R::dispense('user', 10);
Untuk menunjukkan hubungan yang banyak, mari kita buat beberapa watak:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;
Peranan bukan sekadar pengguna individu; Oleh itu, untuk memberikan dua peranan pertama kepada pengguna dan menjalin hubungan dalam pangkalan data apabila berbuat demikian, kita boleh melakukan ini:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
Kali ini anda harus mencari jadual baru yang dipanggil role_user
yang mentakrifkan hubungan ini sebagai hubungan yang banyak.
anda boleh mendapatkan peranan yang dimiliki oleh pengguna dengan membaca atribut:
$user->password = 'secret'; R::store($user);
Penangguhan ini memuatkan peranan pada kali pertama mereka diakses.
Hubungan mempunyai lebih banyak lagi, termasuk menambahkan atribut dengan hubungan menggunakan link
, penapisan dengan pautan, memuat segera, dan lain -lain - Sila periksa dokumentasi untuk maklumat lanjut.
Model
Anda boleh membuat model untuk sesuai dengan jenis kacang, ikuti konvensyen penamaan tertentu. Model itu kemudian menghubungkan ke kacang menggunakan fius;
Konvensyen adalah mudah; Sebagai contoh, untuk membuat model untuk pengguna, anda hanya perlu melakukan perkara berikut: Model_Type
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>
Sebagai contoh, anda boleh menambah pengesahan dengan melaksanakan update()
:
$user = R::dispense('user');
Anda tentu saja juga boleh membuat kaedah anda sendiri serta menyesuaikan getters.
Pangkalan Data Permintaan
anda boleh melaksanakan pertanyaan SQL asal seperti ini:
$users = R::dispense('user', 10);
anda boleh mengembalikan pelbagai baris multidimensi seperti ini:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;
Di samping itu, anda boleh menggunakan parameter mengikat:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
anda boleh mendapatkan satu lajur seperti ini:
$user->password = 'secret'; R::store($user);
anda juga boleh mendapatkan array bersekutu menggunakan dua lajur jadual:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>
menggunakan aplikasi anda
Walaupun ia boleh dikatakan yang terbaik untuk prototaip (atau sekurang -kurangnya pembangunan) - anda boleh mengikuti langkah -langkah tertentu, tidak ada sebab mengapa RedBeandPHP tidak dapat terus digunakan dalam persekitaran pengeluaran.
Mekanisme mod kemas kini dinamik redbeanphp dipanggil "mod streaming"; Walau bagaimanapun, anda boleh mematikannya dengan "membekukan" itu:
$user->age = 30; R::store($user);
Semasa memasuki pengeluaran, anda perlu mengikuti langkah -langkah berikut:
Ringkasan
Dalam artikel ini, saya memperkenalkan RedBeandPhp, cara yang mudah untuk memulakan proses pembangunan anda dengan membolehkan anda memproses model domain tanpa perlu membina corak asas terlebih dahulu. Sama ada ia sesuai untuk persekitaran pengeluaran masih dapat dilihat - tetapi ia adalah alat yang hebat untuk prototaip dan lelaran cepat. Saya tidak banyak menutupi, jadi pastikan anda menyemak dokumentasi.
FAQ REDBEANPHP
RedBeandPhp adalah alat pemetaan objek-relasi-relasi yang sederhana dan ringan yang menyediakan pelbagai ciri yang direka untuk memudahkan interaksi pangkalan data. Ia dikenali dengan pendekatan "konfigurasi sifar", yang bermaksud ia hanya memerlukan persediaan dan konfigurasi yang minimum. Ia secara automatik membina skema pangkalan data berdasarkan objek yang anda buat, dan boleh menyesuaikan skema seperti yang diperlukan apabila objek berubah. RedBeandPHP juga menyokong mod streaming dan mod pembekuan, yang membolehkan anda dengan mudah menukar antara persekitaran pembangunan dan pengeluaran. Ia termasuk struktur pokok terbina dalam dan menyokong pengetinan dan pengedaran kacang untuk penyimpanan dan pengambilan objek yang mudah.
Berbanding dengan alat ORM yang lain, RedBeandPhp menonjol untuk kesederhanaan dan kemudahan penggunaannya. Ia tidak memerlukan fail konfigurasi, kelas SQL atau model. Ini menjadikannya pilihan yang baik untuk pemula atau projek di mana ORM yang lengkap muncul berlebihan. Walau bagaimanapun, ia masih menawarkan ciri -ciri yang kuat seperti pengubahsuaian mod automatik dan struktur pokok, menjadikannya cukup untuk projek yang lebih kompleks.
RedBeandPhp boleh dipasang melalui komposer (alat pengurusan ketergantungan PHP yang popular). Selepas pemasangan, anda boleh menyediakan RedBeandPhp dengan memasukkan fail RedBeandPhp dalam skrip dan menyediakan sambungan pangkalan data. RedBeandPHP secara automatik akan membuat dan mengubah suai jadual berdasarkan objek anda.
Mod streaming adalah ciri RedBeandPhp yang membolehkannya secara automatik menyesuaikan skema pangkalan data apabila objek berubah. Ini dapat menjimatkan banyak masa semasa pembangunan kerana anda tidak perlu mengubahsuai pangkalan data secara manual setiap kali anda menukar objek. Walau bagaimanapun, adalah disyorkan untuk beralih kepada "mod pembekuan" dalam persekitaran pengeluaran untuk sebab -sebab prestasi dan keselamatan.
RedBeandPhp menyokong beberapa jenis hubungan antara objek, termasuk satu-ke-satu, satu-ke-banyak, dan banyak-banyak. Hubungan ini dikendalikan dengan menggunakan "kacang" (objek mudah yang mewakili baris dalam jadual pangkalan data). Anda boleh mengaitkan kacang dengan mudah untuk mewakili hubungan antara objek.
Ya, RedBeandPhp boleh digunakan dengan pangkalan data sedia ada. Walau bagaimanapun, sila ambil perhatian bahawa ciri pengubahsuaian mod automatik RedBeanPHP boleh mengubah struktur pangkalan data, jadi disyorkan untuk membuat sandaran pangkalan data sebelum menggunakan RedBeandPHP.
Walaupun RedBeandPhp terkenal dengan kesederhanaan dan kemudahan penggunaannya, ia juga menawarkan ciri -ciri yang kuat yang menjadikannya sesuai untuk projek -projek besar dan kompleks. Pengubahsuaian mod automatik, sokongan untuk pelbagai jenis hubungan, dan struktur pokok terbina dalam semuanya sangat berguna dalam projek besar. Walau bagaimanapun, untuk projek yang sangat besar atau kompleks, alat ORM yang lebih komprehensif mungkin lebih sesuai.
RedBeandPhp mengandungi beberapa ciri yang direka untuk meningkatkan keselamatan. Ia menggunakan kenyataan pra -proses untuk membantu mencegah serangan suntikan SQL dan mengesyorkan menggunakan "mod pembekuan" dalam pengeluaran untuk mencegah perubahan skema yang tidak dijangka. Walau bagaimanapun, seperti mana -mana alat, adalah penting untuk mengikuti amalan terbaik keselamatan dan menyimpan redbeandphp sehingga kini.
Bean Canning adalah ciri RedBeandPhp yang membolehkan anda menyimpan dan mengambil keseluruhan kacang (objek) yang ditetapkan sekaligus. Ini boleh menjadi cara yang mudah untuk mengendalikan sejumlah besar data, dan juga dapat membantu meningkatkan prestasi dengan mengurangkan bilangan pertanyaan pangkalan data.
Walaupun komposer adalah kaedah yang disyorkan untuk memasang RedBeandPhp, anda juga boleh memuat turun dan memasukkan fail RedBeandPhp terus ke dalam skrip anda. Walau bagaimanapun, dengan menggunakan komposer menjadikannya lebih mudah untuk mengurus dan mengemas kini RedBeandPhp dan sebarang kebergantungan lain yang mungkin ada.
Atas ialah kandungan terperinci Pengenalan kepada Redbean. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!