ホームページ > PHPフレームワーク > Swoole > フロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法

フロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2023-10-21 11:23:09
オリジナル
1629 人が閲覧しました

フロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法

フロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法

インターネットの急速な発展に伴い、フロントエンドとバックエンドの開発モデルは、バックエンドの分離は開発者からますます注目を集めています。この開発モデルでは、フロントエンドがページ表示とユーザー操作を担当し、バックエンドがデータ処理とビジネス ロジックを担当します。この記事では、フロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。

  1. 環境準備

まず、PHPとComposerをインストールする必要があります。次に、Composer を使用して、次のコマンドで Hyperf フレームワークをグローバルにインストールします:

1

composer global require hyperf/hyperf-skeleton

ログイン後にコピー

インストールが完了したら、次のコマンドを使用して新しい Hyperf プロジェクトを作成できます:

1

composer create-project hyperf/hyperf-skeleton your-project-name

ログイン後にコピー
    # #Create Controller
Hyperf フレームワークでは、コントローラーはリクエストを処理し、対応する応答を返す役割を果たします。次のコマンドを使用して、新しいコントローラーを作成できます。

1

php bin/hyperf.php gen:controller DemoController

ログイン後にコピー

これにより、app/Controller ディレクトリに DemoController という名前のコントローラー ファイルが生成されます。このファイルでは、さまざまなリクエストを処理するためのさまざまなインターフェイス メソッドを定義できます。

以下は、JSON 形式で応答を返す方法を示す簡単なサンプル コードです。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

<?php

 

declare(strict_types=1);

 

namespace AppController;

 

use HyperfDiAnnotationInject;

use HyperfHttpServerAnnotationAutoController;

use HyperfHttpServerAnnotationMiddleware;

use HyperfHttpServerAnnotationMiddlewares;

use HyperfHttpServerContractRequestInterface;

use HyperfHttpServerContractResponseInterface;

 

/**

 * @AutoController(prefix="demo")

 * @Middlewares({

 *     @Middleware(AppMiddlewareAuthMiddleware::class),

 * })

 */

class DemoController

{

    /**

     * @Inject

     * @var RequestInterface

     */

    private $request;

 

    /**

     * @Inject

     * @var ResponseInterface

     */

    private $response;

 

    public function index()

    {

        $data = [

            'message' => 'Hello World',

        ];

        return $this->response->json($data);

    }

}

ログイン後にコピー

このサンプル コードでは、$response- を呼び出して、index という名前のインターフェイス メソッドを作成します。 >json() メソッドは JSON 形式で応答を返します。

    フロントエンド ページの作成
フロントエンドとバックエンドが分離されている開発モードでは、フロントエンドのインターフェイス ドキュメントを提供する必要があります。バックエンド インターフェイスを呼び出せるように開発します。 Hyperf は、インターフェイス ドキュメントを自動的に生成できる Swagger コンポーネントを提供します。次のコマンドを使用して Swagger コンポーネントをインストールできます:

1

composer require hyperf/swagger

ログイン後にコピー

次に、config/autoload ディレクトリに swagger.php 構成ファイルを作成して、Swagger コンポーネントの関連情報を構成します:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<?php

 

use HyperfSwggerAnnotation as Swgger;

 

/**

 * Class DemoController

 *

 * @SwggerApi(tags={"Demo"})

 */

class DemoController

{

    /**

     * @SwggerGet(path="demo/index")

     * @SwggerResponse(code=200, description="成功", @SwggerSchema(ref="#/definitions/Hello"))

     */

    public function index()

    {

        $data = [

            'message' => 'Hello World',

        ];

        return $this->response->json($data);

    }

}

ログイン後にコピー

このサンプル コードでは、Swagger アノテーションを使用して、インターフェイス パス、応答コード、その他の情報を含むインデックス メソッドを記述します。

    Hyperf サービスの開始
コントローラーとフロントエンド ページの作成が完了したら、フロントエンドが通信できるように Hyperf サービスを開始する必要があります。インターフェイスを介してバックエンドと接続します。

次のコマンドを使用して、Hyperf サービスを開始します:

1

php bin/hyperf.php start

ログイン後にコピー

    フロントエンドはバックエンド インターフェイスを呼び出します
Hyperf サービスが開始されたら、正常に開始されると、フロントエンド開発者は Document インターフェイスに従ってバックエンド インターフェイスを呼び出すことができます。 JavaScript、Vue.js、React などのフロントエンド テクノロジを使用できます。

次は、JavaScript を使用してバックエンド インターフェイスを呼び出す方法を示す簡単なサンプル コードです:

1

2

3

fetch('http://localhost:9501/demo/index')

    .then(response => response.json())

    .then(data => console.log(data));

ログイン後にコピー
このサンプル コードでは、fetch 関数を使用して GET リクエストを送信し、 json() メソッドを使用して、返された応答データを解析します。

概要

上記の手順を通じて、Hyperf フレームワークを使用してフロントエンドとバックエンドの分離を開発できます。開発者は、自分のニーズや好みに応じて自分に合ったフロントエンド テクノロジを選択し、インターフェイス ドキュメントに従ってバックエンド インターフェイスを呼び出すことができます。 Hyperf フレームワークの強力な機能と豊富なドキュメントは、開発者がより効率的に開発するのに役立ちます。

以上がフロントエンドとバックエンドの分離開発に Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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