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
Bekerja dengan Data Sesi Flash di LaravelBekerja dengan Data Sesi Flash di LaravelMar 12, 2025 pm 05:08 PM

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTCurl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API RESTMar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Respons HTTP yang dipermudahkan dalam ujian LaravelRespons HTTP yang dipermudahkan dalam ujian LaravelMar 12, 2025 pm 05:09 PM

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 skrip sembang php terbaik di codecanyon12 skrip sembang php terbaik di codecanyonMar 13, 2025 pm 12:08 PM

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHPPembalakan PHP: Amalan Terbaik untuk Analisis Log PHPMar 10, 2025 pm 02:32 PM

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Terangkan konsep pengikatan statik lewat dalam PHP.Terangkan konsep pengikatan statik lewat dalam PHP.Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom.Mar 28, 2025 pm 05:12 PM

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan.Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan.Mar 28, 2025 pm 05:11 PM

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).