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
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
<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!

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-

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

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' =>

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 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

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

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.

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


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

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
Alat pembangunan web visual

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
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).