cari

Introduction to Redbean

mata teras

    RedBeandPhp adalah ORM (Objek Relational Mapper) yang secara dinamik boleh membuat dan mengubah suai skema pangkalan data yang mendasari, yang sesuai untuk prototaip dan mempercepatkan pembangunan.
  • RedBeandPhp membolehkan anda membuat objek (atau "kacang") dan simpannya ke pangkalan data, dan secara automatik menyesuaikan corak untuk menyesuaikan diri walaupun tidak ada jadual yang sepadan.
  • RedBeandPhp menyokong hubungan antara objek melalui konsep "memiliki" objek yang berkaitan, termasuk hubungan satu-ke-satu, satu-banyak dan banyak-banyak.
  • "Mod Streaming" RedBeandPhp membolehkan pelarasan automatik skema pangkalan data apabila objek berubah, tetapi disyorkan untuk beralih kepada "mod beku" dalam pengeluaran untuk prestasi dan keselamatan yang lebih baik.
  • Walaupun RedBeandPhp adalah alat yang sangat baik untuk prototaip dan lelaran yang cepat, berhati -hati juga diperlukan apabila digunakan dalam persekitaran pengeluaran, seperti memeriksa jenis data lajur, kunci asing, hubungan, dan indeks.

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

Anda juga boleh memasangnya melalui komposer;

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');
Ini akan membuat objek pengguna kosong yang boleh anda berikan kepada sifat. Anda juga boleh mengedarkan pelbagai kacang secara serentak dengan menambahkan nombor yang diperlukan sebagai parameter kedua:

$users = R::dispense('user', 10);
Pada peringkat ini, tidak kira sama ada jadual wujud dalam pangkalan data untuk menyelamatkannya;

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

Selepas menentukan model, anda boleh melaksanakan banyak kaedah yang akan dipanggil pada titik yang berbeza dalam kitaran hayat kacang. Jadual berikut menggambarkan pemetaan antara operasi CRUD dan "cangkuk" yang anda boleh melaksanakan:
<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:

  • Semak Jenis Data Lajur
  • periksa kunci dan hubungan asing
  • periksa indeks - redbeandphp akan membuat beberapa indeks - dan mengubahnya seperti yang diperlukan

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

Apakah fungsi utama RedBeandPhp?

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.

Bagaimanakah RedBeandPhp dibandingkan dengan alat ORM yang lain?

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.

Bagaimana untuk memasang dan menyediakan RedBeandPhp?

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.

Apakah "mod streaming" dalam redbeandphp?

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.

Bagaimanakah RedBeandPhp mengendalikan hubungan antara objek?

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.

Bolehkah saya menggunakan RedBeandPhp dengan pangkalan data saya yang sedia ada?

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.

Adakah RedBeandPhp sesuai untuk projek besar dan kompleks?

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.

Bagaimana RedBeandPhp Mengendalikan Keselamatan?

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.

Apa itu "kacang boleh" dalam redbeani?

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.

Bolehkah saya menggunakan redbeandphp tanpa komposer?

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!

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
Bagaimanakah PHP mengenal pasti sesi pengguna?Bagaimanakah PHP mengenal pasti sesi pengguna?May 01, 2025 am 12:23 AM

Phpidentifierauser'sSessionusingSessionCookiesandSessionIds.1) whensession_start () ISCALLED, phpGeneratesAuniquesessionIdstoredinacookienamedPhpsessidontheUserer'sBrowser.2) ThisIdallowsPhptoretRievesSessionDataFromtheserver.

Apakah beberapa amalan terbaik untuk mendapatkan sesi PHP?Apakah beberapa amalan terbaik untuk mendapatkan sesi PHP?May 01, 2025 am 12:22 AM

Keselamatan sesi PHP boleh dicapai melalui langkah -langkah berikut: 1. Gunakan session_regenerate_id () untuk menjana semula ID sesi apabila pengguna log masuk atau merupakan operasi penting. 2. Sulitkan ID sesi penghantaran melalui protokol HTTPS. 3. Gunakan session_save_path () untuk menentukan direktori selamat untuk menyimpan data sesi dan menetapkan kebenaran dengan betul.

Di manakah fail sesi php disimpan secara lalai?Di manakah fail sesi php disimpan secara lalai?May 01, 2025 am 12:15 AM

PhpsessionFileSarestoredIntHedirectorySpecifiedBySession.save_path, biasanya/tmponunix-likesystemsorc: \ windows \ temponwindows.tocustomethis: 1) usession_save_path ()

Bagaimana anda mengambil data dari sesi PHP?Bagaimana anda mengambil data dari sesi PHP?May 01, 2025 am 12:11 AM

ToretrievedataFromaphpsession, startTheSessionWithSsion_start () andaccessVariablesInthe $ _SessionArray.Forexample: 1) startTheSession: session_start ()

Bagaimana anda boleh menggunakan sesi untuk melaksanakan keranjang belanja?Bagaimana anda boleh menggunakan sesi untuk melaksanakan keranjang belanja?May 01, 2025 am 12:10 AM

Langkah -langkah untuk membina sistem keranjang belanja yang cekap menggunakan sesi termasuk: 1) Memahami definisi dan fungsi sesi. Sesi ini adalah mekanisme penyimpanan sisi pelayan yang digunakan untuk mengekalkan status pengguna merentasi permintaan; 2) melaksanakan pengurusan sesi asas, seperti menambah produk ke keranjang belanja; 3) memperluas penggunaan lanjutan, menyokong pengurusan kuantiti produk dan penghapusan; 4) Mengoptimumkan prestasi dan keselamatan, dengan berterusan data sesi dan menggunakan pengecam sesi yang selamat.

Bagaimana anda membuat dan menggunakan antara muka dalam PHP?Bagaimana anda membuat dan menggunakan antara muka dalam PHP?Apr 30, 2025 pm 03:40 PM

Artikel ini menerangkan cara membuat, melaksanakan, dan menggunakan antara muka dalam PHP, memberi tumpuan kepada manfaat mereka untuk organisasi kod dan penyelenggaraan.

Apakah perbezaan antara crypt () dan password_hash ()?Apakah perbezaan antara crypt () dan password_hash ()?Apr 30, 2025 pm 03:39 PM

Artikel ini membincangkan perbezaan antara crypt () dan password_hash () dalam php untuk hashing kata laluan, memberi tumpuan kepada pelaksanaan, keselamatan, dan kesesuaian untuk aplikasi web moden.

Bagaimanakah anda dapat mencegah skrip lintas tapak (XSS) dalam PHP?Bagaimanakah anda dapat mencegah skrip lintas tapak (XSS) dalam PHP?Apr 30, 2025 pm 03:38 PM

Artikel membincangkan mencegah skrip lintas tapak (XSS) dalam PHP melalui pengesahan input, pengekodan output, dan menggunakan alat seperti OWASP ESAPI dan pembersih HTML.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft