目次
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)

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHP OOPで、self ::、parent ::、and static ::の違いを説明します。 PHP OOPで、self ::、parent ::、and static ::の違いを説明します。 Apr 09, 2025 am 12:04 AM

Phpoopでは、self ::は現在のクラスを指し、親::は親クラスを指し、静的::は後期静的結合に使用されます。 1.Self ::静的方法と一定の呼び出しに使用されますが、後期静的結合をサポートしていません。 2.Parent ::サブクラスには、親クラスのメソッドを呼び出すために使用され、プライベートメソッドにアクセスできません。 3.Static ::継承と多型に適した後期静的結合をサポートしますが、コードの読みやすさに影響を与える可能性があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか? PHPは、ファイルを安全に処理する方法をどのように処理しますか? Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles