検索

Redbeanの紹介

Feb 23, 2025 am 08:27 AM

Introduction to Redbean

コアポイント

  • RedBeanPhpは、基礎となるデータベーススキーマを動的に作成および変更できるORM(オブジェクトリレーショナルマッパー)です。これは、プロトタイプ化と開発に最適です。
  • RedBeanPHPを使用すると、オブジェクト(または「Bean」)を作成してデータベースに保存できます。また、対応するテーブルがない場合でも、パターンを自動的に調整して適応します。
  • RedbeanPhpは、1対1、1対多、および多くの関係を含む、関連するオブジェクトを「所有」するという概念を通じて、オブジェクト間の関係をサポートします。
  • RedbeanPhpの「ストリーミングモード」により、オブジェクトが変更されたときにデータベーススキーマの自動調整が可能になりますが、パフォーマンスとセキュリティを改善するために生産中に「フローズンモード」に切り替えることをお勧めします。

redbeanphpの紹介

迅速なアプリケーション開発(RAD)およびプロトタイピングでは、すぐに開始するのに役立つ多くのツールがあります。クイックスタートからミニフレームワークまで、作曲家などのビルドツールからワンクリックインストーラー、そしてもちろんORMまで、開発をスピードアップする方法がたくさんあります。プロトタイピングに最適なユニークなORMであるRedbeanPhpに焦点を当てます。

redbeanphpの初心者RedbeanPhpはORM(オブジェクトリレーショナルマッパー)ですが、単なるORM以上のものです。基礎となるデータベーススキーマを動的に作成および変更できます。従来、ORMは、事前に計画された既存のデータベーススキーマのラッパーとして使用していました。これはほとんどのプロジェクトでは問題ありませんが、プロトタイピング(またはそれをしている間に考えている)を行っている場合、バックグラウンドでそれを実行することはさらに高速化できます。

インストール

redbeanphpをインストールする最も簡単な方法は、オールインワンパッケージをダウンロードすることです。次に、単一のファイルを導入する必要があります

作曲家を介してインストールすることもできますが、ライブラリの著者はこの方法を推奨していません。詳細については、インストールページを参照してください。

rb.php

bean

を配布します

redbeanphpを使用する最初のステップは、豆を「分配」することです。これは基本的にオブジェクトです。この記事の残りの部分では、「Bean」とオブジェクトを同じ意味で使用していることに注意してください。 分布は、型をパラメーターとして取得する上部レッドビーンクラス「R」の静的方法によって行われます。

例:

これにより、プロパティを割り当てることができる空のユーザーオブジェクトが作成されます。また、必要な番号を2番目のパラメーターとして追加することにより、複数の豆を同時に配布することもできます。

この段階では、保存しようとする限り、テーブルがデータベースに存在するかどうかは関係ありません。

試してみましょう - データベースへの書き込みに使用される静的メソッドの使用に注意してください:store

$user = R::dispense('user');
ほとんどのORMでは、ユーザーを保存するためのテーブルを作成していない場合、これは失敗します。ただし、RedbeanPhpを使用すると、これはあなたのためにテーブルを作成するため成功します。この段階でデータベースを見ると、次のようなテーブルが表示されます。

命名規則は、指定したタイプの特異な小文字の表現であるため、非常に厳しいものです。
$users = R::dispense('user', 10);

ここで、反復中にパターンがどのように変化するかを見てみましょう。ユーザーレコードにはパスワードフィールドが必要になる場合がありますが、それらを作成するのを忘れていました。

これを行う場合:

今回は、RedBeanPhpはユーザーを保存する方法を知っていますが、データベーステーブルは新しいフィールドに対応できません。それは大丈夫です - それはただ追加します、あなたのパフォーマンスは次のようになります:
$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;

<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>
(次のコンテンツは元のテキストに似ていますが、文の構造と単語の調整が行われ、画像の位置と形式は変更されていません)

フィールドデータ型

RedBeanPHPは、提供した情報に基づいてフィールドのデータ型を推測しようとします。したがって、もしそうなら:

年齢分野はTinyintとして作成されていることがわかります。
$user->password = 'secret';
R::store($user);

フィールドタイプが後で不十分な場合、RedBeanPHPは動的に変更します。 3000を年齢に割り当てようとすると、列がintに変更されます。名前を「30」と綴ると、Varcharに変更されます。 Varcharフィールドを255文字以上に設定すると、テキストフィールドなどになります。

bean

を見つけます

メソッドを使用して、プライマリキーによって特定のオブジェクトをロードできます。

load

メソッドを使用して複数のオブジェクトを一度にロードできます(プライマリキーを押します):
<code>user
----

id          int(11) UN PK AI
name        varchar(255)
email       varchar(255)
password    varchar(255)</code>

batchこれにより、豆の配列が返されます。

$user->age = 30;
R::store($user);
SQLを使用して豆を見つけることもできます。

メソッドの2番目のパラメーターは、本質的にsqlで、Whereキーワード自体を除く句から始まります。たとえば、20歳未満のユーザーを見つけるには:

findパラメーターを結合しているため、3番目のパラメーターは配列であることに注意してください。これにより、IDをキーとして使用して豆の配列が返されます。

$user = R::load('user', 1);
次のようなSQLにさらに条項を追加できます。

count

メソッドを使用して、レコードの数を見つけることができます:

削除count

単一の豆を削除するには、
$users = R::batch('user', array(1, 2, 3));

を使用します

特定のタイプの複数の豆を削除するには、trash

を使用します
$users = R::find('user', 'age < 20');

特定のタイプのすべての豆を削除するには、trashAll

を使用します
$number_of_users = R::count('user');

または、すべてを削除するには - これはプロトタイプ化するときに役立つことがあります。 wipe

関係
R::trash($user);

任意のORMと同様に、オブジェクト間の関係がサポートされています。 nuke

1対多くの関係を使用して、関連するオブジェクトを「所有」するという概念を参照します。たとえば、注文に1人のユーザーのみがいる場合、ユーザーは注文と呼ばれます。特定の変数名を使用することにより、このようなこの関係を作成できます。

$user = R::dispense('user');
ここでの重要な要素は属性

です。今すぐデータベースを確認すると、RedBeanPhpが対応する外部キーとともに、注文テーブルにフィールドを追加したことがわかります。 ownOrders 注文を「所有」するユーザーは、属性として単純にアクセスできます。たとえば、user_id

多くの関係を示すために、いくつかのキャラクターを作成しましょう:

$users = R::dispense('user', 10);

ロールは、個々のユーザーだけではありません。したがって、最初の2つのロールをユーザーに割り当て、そうするときにデータベースに関係を確立するために、これを行うことができます。

$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;
今回は、この関係を多目的な関係として定義する

という新しいテーブルを見つける必要があります。

<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>
属性を読むことでユーザーに属する役割を得ることができます:

role_user

これにより、初めてアクセスしたときに役割の負荷が遅れます。

関係には、
$user->password = 'secret';
R::store($user);
を使用した関係に属性を追加すること、リンクごとのフィルタリング、緊急の読み込みなどが含まれます。詳細については、ドキュメントを確認してください。

モデル

link Beanタイプに対応するモデルを作成できます。特定の命名規則に従ってください。モデルは、ヒューズを使用して豆に接続します。つまり、関連する命名規則に従って融合します。

コンベンションは単純です。たとえば、ユーザーのモデルを作成するには、次のことを行う必要があります。

モデルを定義した後、Beanのライフサイクルで異なるポイントで呼び出される多くの方法を実装できます。次の表は、CRUD操作と実装できる「フック」のマッピングを示しています。

たとえば、

update()

を実装して検証を追加できます。
$user = R::dispense('user');
もちろん、ゲッターをカスタマイズするだけでなく、独自の方法を作成することもできます。

Queryデータベース

このような元のsqlクエリを実行できます:

$users = R::dispense('user', 10);
このような行の多次元配列を返すことができます:

さらに、パラメーターバインディング:
$user->name = 'Joe Bloggs';
$user->email = 'joe.bloggs@example.com';
$id = R::store($user);
print $id;
を使用できます

次のような単一の列を取得できます:
<code>user
----

id      int(11) UN PK AI
name    varchar(255)
email   varchar(255)</code>

テーブルの2つの列を使用して連想配列を取得することもできます。
$user->password = 'secret';
R::store($user);

アプリケーションを展開

<code>user
----

id          int(11) UN PK AI
name        varchar(255)
email       varchar(255)
password    varchar(255)</code>
間違いなくプロトタイピング(または少なくとも開発)に最適ですが、特定の手順に従うことができますが、RedBeanPHPが生産環境で使用され続けない理由はありません。

RedBeanPHPダイナミック更新モードのメカニズムは「ストリーミングモード」と呼ばれますが、これは生産環境には適しておらず、かなりのパフォーマンスがあります。ただし、「フリーズ」することでオフにすることができます:

生産に入るとき、次の手順に従う必要があります。

$user->age = 30;
R::store($user);
列データ型を確認してください

外国の鍵と関係を確認してください
  • インデックスを確認します-RedBeanPHPはいくつかのインデックスを作成し、必要に応じてそれらを変更します
  • 要約
  • この記事では、RedBeanPhpを紹介しました。これは、基礎となるパターンを最初に構築することなくドメインモデルを処理できるようにすることで、開発プロセスを開始する便利な方法です。生産環境に適しているかどうかはまだわかりませんが、プロトタイプと迅速な反復のための素晴らしいガジェットです。私はあまりカバーしていないので、ドキュメントをチェックしてください。
redbeanphp faq

redbeanphpの主な機能は何ですか?

RedBeanPhpは、データベースの相互作用を簡素化するために設計されたさまざまな機能を提供するシンプルで軽量のオブジェクトリレーショナルマッピング(ORM)ツールです。 「ゼロ構成」アプローチで知られています。つまり、最小限のセットアップと構成のみが必要です。作成したオブジェクトに基づいてデータベーススキーマを自動的に構築し、オブジェクトが変更されたときに必要に応じてスキーマを調整できます。 RedBeanPHPは、ストリーミングモードと凍結モードもサポートしているため、開発環境と生産環境を簡単に切り替えることができます。組み込みのツリー構造が含まれており、オブジェクトを簡単に保存して検索するためのBean CanningとDistributionをサポートします。

RedBeanPhpは他のORMツールとどのように比較されますか?

他のORMツールと比較して、RedBeanPHPはその単純さと使いやすさで際立っています。構成ファイル、SQL、またはモデルクラスは必要ありません。これにより、フル機能のORMが冗長に見える初心者やプロジェクトに最適です。ただし、自動モードの変更やツリー構造などの強力な機能を提供しているため、より複雑なプロジェクトで十分です。

redbeanphpをインストールしてセットアップする方法は?

RedBeanPhpは、Composer(人気のあるPHP依存性管理ツール)を介してインストールできます。インストール後、RedBeanPHPファイルをスクリプトに含めてデータベース接続を設定することにより、RedBeanPHPをセットアップできます。 RedBeanPhpは、オブジェクトに基づいてテーブルを自動的に作成および変更します。

redbeanphpの「ストリーミングモード」とは何ですか?

ストリーミングモードは、オブジェクトが変更されたときにデータベーススキーマを自動的に調整できるRedBeanPHPの機能です。オブジェクトを変更するたびにデータベースを手動で変更する必要がないため、開発中に多くの時間を節約できます。ただし、パフォーマンスと安全上の理由から、生産環境で「フリーズモード」に切り替えることをお勧めします。

redbeanphpはオブジェクト間の関係をどのように処理しますか?

RedbeanPhpは、1対1、1対多、および多数のオブジェクト間のいくつかの関係タイプをサポートしています。これらの関係は、「Bean」(データベーステーブルの行を表す単純なオブジェクト)を使用して処理されます。オブジェクト間の関係を表すために、豆を互いに簡単に関連付けることができます。

既存のデータベースでredbeanphpを使用できますか?

はい、redbeanphpは既存のデータベースで使用できます。ただし、RedBeanPHPの自動モード変更機能はデータベース構造を変更する可能性があるため、RedBeanPHPを使用する前にデータベースをバックアップすることをお勧めします。

redbeanphpは大規模で複雑なプロジェクトに適していますか?

RedbeanPhpはその単純さと使いやすさで知られていますが、大規模で複雑なプロジェクトにも適した強力な機能を提供します。その自動モードの変更、さまざまな関係タイプのサポート、および組み込みのツリー構造はすべて、大規模なプロジェクトで非常に役立ちます。ただし、非常に大規模または複雑なプロジェクトでは、より包括的なORMツールがより適切になる場合があります。

RedbeanPhpはセキュリティをどのように処理しますか?

RedBeanPhpには、セキュリティを強化するために設計されたいくつかの機能が含まれています。前処理ステートメントを使用してSQL注入攻撃を防ぐのに役立ち、生産で「フリーズモード」を使用して予期しないスキーマの変更を防ぐことをお勧めします。ただし、他のツールと同様に、セキュリティのベストプラクティスに従い、RedBeanPHPを最新の状態に保つことが重要です。

redbeanphpの「bean can」とは何ですか?

Bean Canningは、一度に設定されたBean(オブジェクト)全体を保存および取得できるRedbeanPhpの機能です。これは、大量のデータを処理するための便利な方法であり、データベースクエリの数を減らすことでパフォーマンスを改善するのにも役立ちます。

作曲家なしでredbeanphpを使用できますか?

ComposerがRedBeanPHPをインストールするための推奨方法ですが、RedBeanPHPファイルをスクリプトに直接ダウンロードして含めることもできます。ただし、Composerを使用すると、RedbeanPhpやプロジェクトが持つ可能性のあるその他の依存関係を簡単に管理および更新できます。

以上がRedbeanの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
どのデータをPHPセッションに保存できますか?どのデータをPHPセッションに保存できますか?May 02, 2025 am 12:17 AM

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

どのようにPHPセッションを開始しますか?どのようにPHPセッションを開始しますか?May 02, 2025 am 12:16 AM

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?May 02, 2025 am 12:15 AM

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?May 02, 2025 am 12:11 AM

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

PHPセッションはCookieとどのように異なりますか?PHPセッションはCookieとどのように異なりますか?May 02, 2025 am 12:03 AM

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。