Home > PHP Framework > Swoole > How to use Hyperf framework for ORM operations

How to use Hyperf framework for ORM operations

PHPz
Release: 2023-10-24 12:16:44
Original
1399 people have browsed it

How to use Hyperf framework for ORM operations

How to use the Hyperf framework for ORM operations

Introduction:

Hyperf is a high-performance coroutine framework with flexible component design and Powerful dependency injection function. It provides developers with many convenient tools and components, one of which is ORM (Object Relational Mapping) operations. This article will introduce how to use the Hyperf framework for ORM operations and provide specific code examples.

1. Installation and Configuration

Before starting, you first need to ensure that the Hyperf framework has been installed. For specific installation steps, please refer to the Hyperf official documentation.

1.1 Install dependencies

Run the following command in the command line to install dependencies for database operations:

composer require hyperf/model
composer require hyperf/database
Copy after login

1.2 Configure database connection

In the Hyperf framework , the database connection configuration is located in the databases.php file in the config/autoload directory. In this file, you can configure all database connection information, including master-slave database, connection pool, etc.

The following is a simple database configuration example:

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' => [
            // ...
        ],
    ],
];
Copy after login

2. Define the model

Before using the Hyperf framework for ORM operations, you first need to define the model. The model is equivalent to a PHP class corresponding to the database table. The database can be easily operated through the model. In the Hyperf framework, models need to inherit the Hyperf/Model/Model class and define properties corresponding to the database table.

The following is a simple model definition example:

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

In the above code, a model named User is defined, which corresponds to the database table named users. The attributes corresponding to the table are defined in the model, and attributes that can be assigned values ​​in batches are specified.

3. Query data

When using the Hyperf framework for ORM operations, you can use the model's query builder to build query statements.

The following are some common query operation examples:

3.1 Query all data

use AppModelUser;

$users = User::all();

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

3.2 Conditional query

use AppModelUser;

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

echo $user->name;
Copy after login

3.3 Add query conditions

use AppModelUser;

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

echo $user->name;
Copy after login

3.4 Aggregation function query

use AppModelUser;

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

echo $count;
Copy after login

4. Insert, update and delete data

In the Hyperf framework, you can use the model’s create(), update() and delete() methods to Insert, update and delete data.

4.1 Insert data

use AppModelUser;

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

4.2 Update data

use AppModelUser;

$user = User::find(1);

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

4.3 Delete data

use AppModelUser;

$user = User::find(1);

$user->delete();
Copy after login

5. Summary

This article introduces how to use The Hyperf framework performs ORM operations and provides specific code examples. Through the query builder of the model, we can easily perform addition, deletion, modification and query operations in the database. At the same time, the Hyperf framework also provides many other powerful functions, such as dependency injection, event-driven, etc., which can further improve development efficiency.

I hope this article will be helpful to you. If you have any questions or suggestions, please feel free to leave a message for discussion. I wish you success in using the Hyperf framework for ORM operations!

The above is the detailed content of How to use Hyperf framework for ORM operations. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template