検索
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 までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

ストレージを使用してLaravelでファイルのダウンロードを発見してください::ダウンロードストレージを使用してLaravelでファイルのダウンロードを発見してください::ダウンロードMar 06, 2025 am 02:22 AM

ストレージ:: Laravelフレームワークのダウンロード方法は、ファイルストレージの抽象化を管理しながら、ファイルのダウンロードを安全に処理するための簡潔なAPIを提供します。 サンプルコントローラーでストレージ::ダウンロード()を使用する例は次のとおりです。

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelサービスプロバイダーを登録および使用する方法Laravelサービスプロバイダーを登録および使用する方法Mar 07, 2025 am 01:18 AM

Laravelのサービスコンテナとサービスプロバイダーは、そのアーキテクチャの基本です。 この記事では、サービスコンテナ、詳細サービスプロバイダーの作成、登録、および実用的な使用法を例で説明します。 Oveから始めます

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

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