Heim  >  Artikel  >  Backend-Entwicklung  >  Best Practices für die PHP-Hyperf-Microservices-Entwicklung: Vom Prototyp bis zur Produktion

Best Practices für die PHP-Hyperf-Microservices-Entwicklung: Vom Prototyp bis zur Produktion

WBOY
WBOYOriginal
2023-09-12 10:36:11795Durchsuche

PHP Hyperf微服务开发最佳实践:从原型到生产环境

PHP Hyperf ist ein leistungsstarkes Microservice-Framework, das häufig bei der Entwicklung großer Internetunternehmen eingesetzt wird. In diesem Artikel werden Best Practices für die Microservice-Entwicklung mit PHP Hyperf vorgestellt, vom Prototyp bis zur Produktionsumgebung.

1. Umgebungsvorbereitung

Bevor Sie PHP Hyperf für die Microservice-Entwicklung verwenden, müssen Sie die Umgebung vorbereiten. Stellen Sie zunächst sicher, dass die PHP-Betriebsumgebung installiert ist und die Version 7.2 oder höher ist. Zweitens installieren Sie Composer, um PHP-Abhängigkeitspakete zu verwalten. Installieren Sie abschließend das Befehlszeilentool hyperf/hyperf von Hyperf.

2. Erstellen Sie ein Projekt

Verwenden Sie das Befehlszeilentool von Hyperf, um ein neues Projekt zu erstellen:

$ composer create-project hyperf/hyperf-skeleton

Dieser Befehl erstellt ein Projekt mit dem Namen hyperf-skeleton im aktuellen Verzeichnis. Geben Sie das Projektverzeichnis ein:

$ cd hyperf-skeleton

3. Entwickeln Sie einen Prototyp

Bevor Sie mit der formalen Entwicklung beginnen, erstellen Sie einen Prototyp, um einige Grundfunktionen zu überprüfen. Sie können zunächst einen UserController erstellen und eine Registrierungsschnittstelle hinzufügen:

<?php

namespace AppController;

use HyperfHttpServerAnnotationController;
use HyperfHttpServerAnnotationPostMapping;

/**
 * @Controller(prefix="/user")
 */
class UserController
{
    /**
     * @PostMapping("/register")
     */
    public function register()
    {
        // 注册逻辑
    }
}

Dann registrieren Sie die Schnittstelle in der Routing-Konfigurationsdatei (routes.php):

use AppControllerUserController;

Router::addGroup('/user', function () {
    Router::post('/register', [UserController::class, 'register']);
});

Starten Sie den Hyperf-Entwicklungsserver:

$ php bin/hyperf.php start

Verwenden Sie zum Senden Tools wie Postman eine POST-Anfrage an http://127.0.0.1:9501/user/register und Sie können sehen, dass die Schnittstelle normal funktioniert.

4. Datenbankbetrieb

Bei der echten Microservice-Entwicklung ist es oft notwendig, mit der Datenbank zu interagieren. Hyperf stellt die Hyperf/Database-Komponente zum Betrieb der Datenbank bereit. Installieren Sie zunächst die Hyperf/Datenbank-Komponente über Composer:

$ composer require hyperf/database

Dann konfigurieren Sie die Datenbankverbindungsinformationen in der .env-Datei:

DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=

Als nächstes konfigurieren Sie die Datenbankverbindungsinformationen in der Datei 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', ''),
    ],
];

Dann verwenden Sie Hyperf/Datenbank-Komponenten in UserController, um Datenbankoperationen durchzuführen:

<?php

namespace AppController;

use HyperfDbConnectionDb;
use HyperfHttpServerAnnotationController;
use HyperfHttpServerAnnotationPostMapping;

/**
 * @Controller(prefix="/user")
 */
class UserController
{
    /**
     * @PostMapping("/register")
     */
    public function register()
    {
        $username = $this->request->input('username');
        $password = $this->request->input('password');

        // 插入用户数据
        $userId = Db::table('users')->insertGetId([
            'username' => $username,
            'password' => $password,
        ]);

        // 返回用户ID
        return $this->response->json(['user_id' => $userId]);
    }
}

5. Sicherheitsmaßnahmen

Bei der Microservice-Entwicklung ist Sicherheit sehr wichtig. Hyperf bietet verschiedene Sicherheitsmaßnahmen zum Schutz von Anwendungen. Mit Hyperf/Security-Komponenten können sensible Daten ver- und entschlüsselt sowie Signaturen generiert und überprüft werden.

Installieren Sie die Hyperf/Security-Komponente:

$ composer require hyperf/security

Konfigurieren Sie die Hyperf/Security-Komponente in der Datei config/autoload/dependencies.php:

return [
    'dependencies' => [
        // ...
        HyperfSecurityEncrypterInterface::class => HyperfSecurityHashPasswordHash::class,
        HyperfSecuritySecurityManagerInterface::class => HyperfSecuritySecurityManager::class,
    ],
];

Verwenden Sie dann die Hyperf/Security-Komponente im UserController, um Daten zu ver- und entschlüsseln:

<?php

namespace AppController;

use HyperfDbConnectionDb;
use HyperfHttpServerAnnotationController;
use HyperfHttpServerAnnotationPostMapping;
use HyperfSecurityEncrypterInterface;
use HyperfSecuritySecurityManagerInterface;

/**
 * @Controller(prefix="/user")
 */
class UserController
{
    /**
     * @PostMapping("/register")
     */
    public function register(EncrypterInterface $encrypter, SecurityManagerInterface $security)
    {
        $username = $this->request->input('username');
        $password = $this->request->input('password');

        // 加密密码
        $hashedPassword = $security->passwordHash($password);

        // 插入用户数据
        $userId = Db::table('users')->insertGetId([
            'username' => $username,
            'password' => $hashedPassword,
        ]);

        // 使用加密算法生成令牌
        $token = $encrypter->encrypt([
            'user_id' => $userId,
            'username' => $username,
        ]);

        // 返回用户ID和令牌
        return $this->response->json(['user_id' => $userId, 'token' => $token]);
    }
}

Sechs, Bereitstellung der Produktionsumgebung

Wenn die Entwicklung abgeschlossen ist, kann das Projekt in der Produktionsumgebung bereitgestellt werden. Hyperf bietet einige praktische Befehle für die Bereitstellung, z. B. den folgenden Befehl zum Generieren eines Routencaches:

$ php bin/hyperf.php vendor:publish hyperf/snowflake

Die Konfiguration kann mit dem folgenden Befehl neu geladen werden:

$ php bin/hyperf.php vendor:publish hyperf/config

Abschließend verwenden Sie den folgenden Befehl, um den Produktionsumgebungsserver zu starten:

$ php bin/hyperf.php start

Das ist es. Eine Best Practice für die PHP-Hyperf-Microservice-Entwicklung vom Prototyp bis zur Produktion. Ich hoffe, dass dieser Artikel für Anfänger hilfreich sein und eine Rolle bei der Entwicklung von Microservices spielen kann.

Das obige ist der detaillierte Inhalt vonBest Practices für die PHP-Hyperf-Microservices-Entwicklung: Vom Prototyp bis zur Produktion. 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