Rumah >pembangunan bahagian belakang >tutorial php >Contoh pembangunan perkhidmatan mikro PHP Hyperf: Bina aplikasi yang sangat boleh disesuaikan

Contoh pembangunan perkhidmatan mikro PHP Hyperf: Bina aplikasi yang sangat boleh disesuaikan

WBOY
WBOYasal
2023-09-11 19:15:421210semak imbas

PHP Hyperf微服务开发实例:构建高度可定制化的应用

PHP Hyperf ialah rangka kerja berprestasi tinggi berdasarkan Swoole Ia menyediakan persekitaran pembangunan dengan seni bina perkhidmatan mikro, membolehkan pembangun membina aplikasi yang boleh disesuaikan. Artikel ini akan menggunakan contoh untuk memperkenalkan cara menggunakan PHP Hyperf untuk pembangunan perkhidmatan mikro.

Sebelum bermula, mari kita fahami dahulu apa itu perkhidmatan mikro. Microservices ialah gaya seni bina perisian yang membahagikan aplikasi besar kepada berbilang perkhidmatan kecil Setiap perkhidmatan berjalan dalam proses bebas dan berkomunikasi melalui protokol komunikasi yang ringan. Faedah seni bina ini ialah kebolehskalaan, fleksibiliti dan kebolehselenggaraan yang lebih besar.

Dalam contoh ini, kami akan membina sistem pengurusan pengguna yang mudah. Sistem ini merangkumi pendaftaran pengguna, log masuk, pengubahsuaian maklumat dan fungsi lain. Kami akan menggunakan rangka kerja perkhidmatan mikro Hyperf untuk membina perkhidmatan pengguna dan perkhidmatan pengesahan secara berasingan.

Pertama, kita perlu memasang Hyperf. Ia boleh dipasang melalui Pengarang.

Pertama, kami mencipta perkhidmatan pengguna. Cipta direktori User dalam direktori akar projek dan buat fail pengawal bernama UserController.php dalam direktori itu. Dalam fail ini, kami mentakrifkan kaedah register untuk mengendalikan logik pendaftaran pengguna. Kodnya adalah seperti berikut:

composer require hyperf/hyperf

Seterusnya, kami mencipta kelas bernama UserService untuk mengendalikan logik perniagaan tertentu. Dalam kelas UserService, kami mentakrifkan kaedah register untuk melaksanakan logik pendaftaran pengguna. Kodnya adalah seperti berikut:

php bin/hyperf.php init

Pada ketika ini, kod perkhidmatan pengguna selesai. User 目录,并在该目录下创建一个名为 UserController.php 的控制器文件。在该文件中,我们定义一个 register 方法来处理用户注册的逻辑。代码如下:

namespace AppUser;

use HyperfDiAnnotationInject;

class UserController
{
    /**
     * @Inject
     * @var UserService
     */
    private $userService;

    public function register(Request $request)
    {
        $username = $request->input('username');
        $password = $request->input('password');

        $this->userService->register($username, $password);

        return ['code' => 0, 'message' => '注册成功'];
    }
}

接下来,我们创建一个名为 UserService 的类来处理具体的业务逻辑。在 UserService 类中,我们定义一个 register 方法来实现用户注册的逻辑。代码如下:

namespace AppUser;

class UserService
{
    public function register($username, $password)
    {
        // TODO: 实现用户注册的逻辑
    }
}

至此,用户服务的代码编写完成。

接下来,我们创建认证服务。同样,在项目的根目录下创建一个 Auth 目录,并在该目录下创建一个名为 AuthController.php 的控制器文件。在该文件中,我们定义一个 login 方法来处理用户登录的逻辑。代码如下:

namespace AppAuth;

use HyperfDiAnnotationInject;

class AuthController
{
    /**
     * @Inject
     * @var AuthService
     */
    private $authService;

    public function login(Request $request)
    {
        $username = $request->input('username');
        $password = $request->input('password');

        $token = $this->authService->login($username, $password);

        return ['code' => 0, 'message' => '登录成功', 'token' => $token];
    }
}

接下来,我们创建一个名为 AuthService 的类来处理具体的业务逻辑。在 AuthService 类中,我们定义一个 login 方法来实现用户登录的逻辑。代码如下:

namespace AppAuth;

class AuthService
{
    public function login($username, $password)
    {
        // TODO: 实现用户登录的逻辑
    }
}

至此,认证服务的代码编写完成。

接下来,我们需要配置路由。在项目的根目录下,找到 config/routes.php

Seterusnya, kami mencipta perkhidmatan pengesahan. Begitu juga, buat direktori Auth dalam direktori akar projek anda dan buat fail pengawal bernama AuthController.php dalam direktori itu. Dalam fail ini, kami mentakrifkan kaedah login untuk mengendalikan logik log masuk pengguna. Kodnya adalah seperti berikut:

<?php

use HyperfHttpServerRouterRouter;

Router::addRoute(['GET', 'POST', 'HEAD'], '/user/register', 'AppUserUserController@register');
Router::addRoute(['GET', 'POST', 'HEAD'], '/auth/login', 'AppAuthAuthController@login');

Seterusnya, kami mencipta kelas bernama AuthService untuk mengendalikan logik perniagaan tertentu. Dalam kelas AuthService, kami mentakrifkan kaedah log masuk untuk melaksanakan logik log masuk pengguna. Kod adalah seperti berikut:

php bin/hyperf.php start

Pada ketika ini, kod untuk perkhidmatan pengesahan telah selesai.

Seterusnya, kita perlu mengkonfigurasi penghalaan. Dalam direktori akar projek, cari fail config/routes.php dan tambahkan kod berikut pada fail:

rrreee

Pada ketika ini, kami telah menyelesaikan pembangunan perkhidmatan mikro. Seterusnya, kami boleh memulakan pelayan pembangunan Hyperf untuk menguji aplikasi kami.

Dalam direktori akar projek, jalankan arahan berikut untuk memulakan pelayan pembangunan: 🎜rrreee🎜Selepas permulaan yang berjaya, kami boleh mengakses antara muka kami melalui penyemak imbas atau alatan lain. Sebagai contoh, kita boleh menggunakan alat seperti Posman untuk menghantar permintaan HTTP. 🎜🎜Melalui langkah di atas, kami berjaya membina aplikasi yang sangat boleh disesuaikan menggunakan PHP Hyperf dan merealisasikan pembangunan perkhidmatan mikro. Dengan membahagikan aplikasi kepada berbilang perkhidmatan yang lebih kecil, kami boleh membangunkan dan mengekalkannya dengan lebih fleksibel, dan mencapai kebolehskalaan yang lebih tinggi. 🎜🎜Ringkasan: Artikel ini memperkenalkan cara menggunakan PHP Hyperf untuk pembangunan perkhidmatan mikro melalui contoh. Kami melaksanakan perkhidmatan pengguna dan perkhidmatan pengesahan dengan membahagikan aplikasi kepada beberapa perkhidmatan kecil, dan menggunakan fungsi penghalaan Hyperf untuk mengkonfigurasi penghalaan antara muka. Dengan cara ini, kami boleh membina aplikasi yang sangat disesuaikan yang mencapai skalabiliti dan fleksibiliti yang lebih besar. Saya harap artikel ini dapat membantu semua orang. 🎜

Atas ialah kandungan terperinci Contoh pembangunan perkhidmatan mikro PHP Hyperf: Bina aplikasi yang sangat boleh disesuaikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn