ORM 操作に Hyperf フレームワークを使用する方法

PHPz
リリース: 2023-10-24 12:16:44
オリジナル
1362 人が閲覧しました

ORM 操作に Hyperf フレームワークを使用する方法

ORM 操作に Hyperf フレームワークを使用する方法

はじめに:

Hyperf は、柔軟なコンポーネント設計と強力な依存関係を備えた高性能コルーチン フレームワークです。インジェクション機能。これは開発者に多くの便利なツールとコンポーネントを提供します。その 1 つは ORM (オブジェクト リレーショナル マッピング) 操作です。この記事では、ORM 操作に Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。

1. インストールと構成

始める前に、まず Hyperf フレームワークがインストールされていることを確認する必要があります。具体的なインストール手順については、Hyperf 公式ドキュメントを参照してください。

1.1 依存関係のインストール

コマンド ラインで次のコマンドを実行して、データベース操作の依存関係をインストールします。

composer require hyperf/model
composer require hyperf/database
ログイン後にコピー

1.2 データベース接続の構成

Hyperf でFramework の場合、データベース接続構成は config/autoload ディレクトリのdatabases.php ファイルにあります。このファイルでは、マスター/スレーブ データベース、接続プールなどを含むすべてのデータベース接続情報を構成できます。

次は簡単なデータベース構成の例です:

return [
    'default' => [
        'driver' => env('DB_DRIVER', 'mysql'),
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', 3306),
        'database' => env('DB_DATABASE', 'test'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'password'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'pool' => [
            'min_connections' => 1,
            'max_connections' => 10,
            'connect_timeout' => 10.0,
            'wait_timeout' => 3.0,
            'heartbeat' => -1,
            'max_idle_time' => (float) env('DB_MAX_IDLE_TIME', 60),
        ],
        'options' => [
            // ...
        ],
    ],
];
ログイン後にコピー

2. モデルの定義

ORM 操作に Hyperf フレームワークを使用する前に、まずモデルを定義する必要があります。モデルはデータベースのテーブルに相当するPHPクラスに相当し、モデルを通じてデータベースを簡単に操作することができます。 Hyperf フレームワークでは、モデルは Hyperf/Model/Model クラスを継承し、データベース テーブルに対応するプロパティを定義する必要があります。

以下は簡単なモデル定義の例です:

<?php

declare (strict_types=1);

namespace AppModel;

use HyperfDbConnectionModelModel;

/**
 * @property int $id
 * @property string $name
 * @property int $age
 * @property string $gender
 */
class User extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['name', 'age', 'gender'];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = [];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [];
}
ログイン後にコピー

上記のコードでは、User という名前のモデルが定義されています。これは、users という名前のデータベース テーブルに対応します。モデルにはテーブルに対応する属性が定義されており、一括で値を代入できる属性が指定されています。

3. クエリ データ

ORM 操作に Hyperf フレームワークを使用する場合、モデルのクエリ ビルダーを使用してクエリ ステートメントを構築できます。

次に、一般的なクエリ操作の例をいくつか示します。

3.1 すべてのデータをクエリする

use AppModelUser;

$users = User::all();

foreach ($users as $user) {
    echo $user->name;
}
ログイン後にコピー

3.2 条件付きクエリ

use AppModelUser;

$user = User::where('age', '>', 18)->first();

echo $user->name;
ログイン後にコピー

3.3 クエリ条件を追加する

use AppModelUser;

$user = User::where('age', '>', 18)
    ->orWhere('gender', 'female')
    ->orderBy('age', 'desc')
    ->first();

echo $user->name;
ログイン後にコピー

3.4 集計関数のクエリ

use AppModelUser;

$count = User::where('age', '>', 18)->count();

echo $count;
ログイン後にコピー

4. データの挿入、更新、削除

Hyperf フレームワークでは、モデルの create()、update()、および delete() メソッドを使用できます。データを挿入、更新、削除します。

4.1 データの挿入

use AppModelUser;

User::create([
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male',
]);
ログイン後にコピー

4.2 データの更新

use AppModelUser;

$user = User::find(1);

$user->name = 'Jerry';
$user->save();
ログイン後にコピー

4.3 データの削除

use AppModelUser;

$user = User::find(1);

$user->delete();
ログイン後にコピー

5. 概要

この記事では、次の方法を紹介します。 Hyperf フレームワークは ORM 操作を実行し、特定のコード例を提供します。モデルのクエリ ビルダーを使用すると、データベースでの追加、削除、変更、クエリ操作を簡単に実行できます。同時に、Hyperf フレームワークは、依存関係注入、イベント駆動など、開発効率をさらに向上させる他の多くの強力な機能も提供します。

この記事がお役に立てば幸いです。ご質問やご提案がございましたら、お気軽にメッセージを残してください。 ORM 操作に Hyperf フレームワークを使用して成功することを祈っています。

以上がORM 操作に Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート