目次
redbeanphpの「ストリーミングモード」とは何ですか?
redbeanphpはオブジェクト間の関係をどのように処理しますか?
既存のデータベースでredbeanphpを使用できますか?
redbeanphpは大規模で複雑なプロジェクトに適していますか?
RedbeanPhpはセキュリティをどのように処理しますか?
redbeanphpの「bean can」とは何ですか?
作曲家なしでredbeanphpを使用できますか?

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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP 8.1の列挙(列挙)とは何ですか? PHP 8.1の列挙(列挙)とは何ですか? Apr 03, 2025 am 12:05 AM

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

REST APIデザインの原則とは何ですか? REST APIデザインの原則とは何ですか? Apr 04, 2025 am 12:01 AM

Restapiの設計原則には、リソース定義、URI設計、HTTPメソッドの使用、ステータスコードの使用、バージョンコントロール、およびHATEOASが含まれます。 1。リソースは名詞で表され、階層で維持される必要があります。 2。HTTPメソッドは、GETを使用してリソースを取得するなど、セマンティクスに準拠する必要があります。 3.ステータスコードは、404など、リソースが存在しないことを意味します。 4。バージョン制御は、URIまたはヘッダーを介して実装できます。 5。それに応じてリンクを介してhateoasブーツクライアント操作をブーツします。

PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? Apr 05, 2025 am 12:03 AM

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPの匿名クラスとは何ですか?また、いつ使用できますか? PHPの匿名クラスとは何ですか?また、いつ使用できますか? Apr 04, 2025 am 12:02 AM

PHPの匿名クラスの主な機能は、1回限りのオブジェクトを作成することです。 1.匿名クラスでは、名前のないクラスをコードで直接定義することができます。これは、一時的な要件に適しています。 2。クラスを継承したり、インターフェイスを実装して柔軟性を高めることができます。 3.使用時にパフォーマンスとコードの読みやすさに注意し、同じ匿名のクラスを繰り返し定義しないようにします。

See all articles