Heim  >  Artikel  >  PHP-Framework  >  So verwenden Sie das Hyperf-Framework für ORM-Operationen

So verwenden Sie das Hyperf-Framework für ORM-Operationen

PHPz
PHPzOriginal
2023-10-24 12:16:441266Durchsuche

So verwenden Sie das Hyperf-Framework für ORM-Operationen

So verwenden Sie das Hyperf-Framework für ORM-Operationen

Einführung:

Hyperf ist ein leistungsstarkes Coroutine-Framework mit flexiblem Komponentendesign und leistungsstarken Abhängigkeitsinjektionsfunktionen. Es bietet Entwicklern viele praktische Tools und Komponenten, darunter ORM-Operationen (Object Relational Mapping). In diesem Artikel wird die Verwendung des Hyperf-Frameworks für ORM-Operationen vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Installation und Konfiguration

Bevor Sie beginnen, müssen Sie zunächst sicherstellen, dass das Hyperf-Framework installiert wurde. Informationen zu den spezifischen Installationsschritten finden Sie in der offiziellen Dokumentation von Hyperf.

1.1 Abhängigkeiten installieren

Führen Sie den folgenden Befehl in der Befehlszeile aus, um Abhängigkeiten für Datenbankoperationen zu installieren:

composer require hyperf/model
composer require hyperf/database

1.2 Datenbankverbindung konfigurieren

Im Hyperf-Framework befindet sich die Datenbankverbindungskonfiguration in der Datei „databases.php“ im config/autoload-Verzeichnis. In dieser Datei können Sie alle Datenbankverbindungsinformationen konfigurieren, einschließlich Master-Slave-Datenbank, Verbindungspool usw.

Das Folgende ist ein einfaches Beispiel für eine Datenbankkonfiguration:

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. Definieren Sie das Modell

Bevor Sie das Hyperf-Framework für ORM-Operationen verwenden, müssen Sie zunächst das Modell definieren. Das Modell entspricht einer PHP-Klasse, die der Datenbanktabelle entspricht. Die Datenbank kann einfach über das Modell bedient werden. Im Hyperf-Framework müssen Modelle die Hyperf/Model/Model-Klasse erben und Eigenschaften definieren, die der Datenbanktabelle entsprechen.

Das Folgende ist ein einfaches Beispiel für eine Modelldefinition:

<?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 = [];
}

Im obigen Code wird ein Modell mit dem Namen „Benutzer“ definiert, das der Datenbanktabelle mit dem Namen „Benutzer“ entspricht. Die der Tabelle entsprechenden Attribute werden im Modell definiert und Attribute angegeben, denen stapelweise Werte zugewiesen werden können.

3. Daten abfragen

Wenn Sie das Hyperf-Framework für ORM-Operationen verwenden, können Sie den Abfrage-Builder des Modells verwenden, um Abfrageanweisungen zu erstellen.

Die folgenden Abfragen sind Beispiele für Abfragen:

3.1 ALLE Daten

use AppModelUser;

$users = User::all();

foreach ($users as $user) {
    echo $user->name;
}

3.2 Bedingte Abfrage

use AppModelUser;

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

echo $user->name;

3.3 Hinzufügen von Abfragebedingungen

use AppModelUser;

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

echo $user->name;

3.4 Aggregationsfunktion Query

use AppModelUser;

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

echo $count;

4. Im Hyperf-Framework können Sie die Methoden create(), update() und delete() des Modells verwenden, um Daten einzufügen, zu aktualisieren und zu löschen.

4.1 Daten einfügen

use AppModelUser;

User::create([
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male',
]);

4.2 Daten aktualisieren

use AppModelUser;

$user = User::find(1);

$user->name = 'Jerry';
$user->save();

4.3 Daten löschen

use AppModelUser;

$user = User::find(1);

$user->delete();

5. Zusammenfassung

In diesem Artikel wird die Verwendung des Hyperf-Frameworks für ORM-Operationen vorgestellt und spezifische Codebeispiele bereitgestellt. Über den Abfragekonstruktor des Modells können wir problemlos Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge in der Datenbank durchführen. Gleichzeitig bietet das Hyperf-Framework auch viele andere leistungsstarke Funktionen wie Abhängigkeitsinjektion, ereignisgesteuert usw., die die Entwicklungseffizienz weiter verbessern können.

Ich hoffe, dieser Artikel ist hilfreich für Sie. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion. Ich wünsche Ihnen viel Erfolg bei der Verwendung des Hyperf-Frameworks für ORM-Operationen!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Hyperf-Framework für ORM-Operationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn