ホームページ > バックエンド開発 > PHPチュートリアル > PHP マイクロサービス アーキテクチャの実践

PHP マイクロサービス アーキテクチャの実践

王林
リリース: 2024-06-05 14:58:09
オリジナル
704 人が閲覧しました

PHP マイクロサービス アーキテクチャの実践: LEMP スタックのインストール: Linux、Nginx、MySQL、および PHP をインストールします。 MySQL データベースの作成: データを保存するデータベースを作成します。 Composer をインストールする: Composer を使用して PHP の依存関係を管理します。マイクロサービスを構築する: Symfony を使用して新しい Composer プロジェクトを作成し、サービスを設定します。エンティティの作成: データベース テーブルにマッピングするためのエンティティを定義します。データベース スキーマの作成: Doctrine を使用してデータベース スキーマを作成します。 API コントローラーを作成します。ユーザーのリクエストを処理するコントローラーです。マイクロサービスの実行: PHP 組み込みサーバーを使用してマイクロサービスを開始します。

PHP マイクロサービス アーキテクチャの実践

PHP マイクロサービス アーキテクチャの実践

はじめに
マイクロサービスは、アプリケーションを独立したスケーラブルなサービスに分割するソフトウェア アーキテクチャ スタイルです。 PHP は、マイクロサービスの構築に最適な人気のあるバックエンド言語です。この記事では、PHP マイクロサービス アーキテクチャの構築を完了するための実践的なケースについて説明します。

LEMP スタックをインストールします
まず、LEMP (Linux、Nginx、MySQL、PHP) スタックをインストールする必要があります:

# Ubuntu/Debian
sudo apt update && sudo apt install nginx mysql-server php8.1

# CentOS/Fedora
sudo yum update && sudo yum install epel-release
sudo yum install nginx mariadb php81
ログイン後にコピー

MySQL データベースを作成します
次に、データを保存するための MySQL データベースを作成します:

CREATE DATABASE micro_services;
GRANT ALL PRIVILEGES ON micro_services.* TO 'user'@'localhost' IDENTIFIED BY 'password';
ログイン後にコピー

Composer をインストールします
Composer は PHP 依存関係管理ツールです:

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
ログイン後にコピー

マイクロサービスの構築
次に、新しい Composer プロジェクトを作成します:

composer create-project symfony/skeleton micro_services
cd micro_services
ログイン後にコピー

次のコンテンツを config/services.yaml に追加しますファイル: config/services.yaml 文件:

services:
    database.connection: # 数据库连接
        class: Doctrine\DBAL\Connection
        arguments:
            dsn: '%env(DATABASE_URL)%'
    monolog.logger: # 日志记录器
        class: Monolog\Logger
        arguments: [micro_services]
        calls:
            - [pushHandler, [new Monolog\Handler\StreamHandler('logs/dev.log')]]
ログイン後にコピー

创建 src/Entity/User.php 实体,该实体映射到数据库中的用户表:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $email;

    // ...
}
ログイン後にコピー

运行以下命令来创建数据库模式:

composer dump-autoload &&
php bin/console doctrine:database:create
ログイン後にコピー

创建 API 控制器
创建一个 API 控制器来处理用户请求:

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;

class UserController extends AbstractController
{
    /**
     * @Route("/api/users", methods={"GET"})
     */
    public function index(EntityManagerInterface $em): Response
    {
        $users = $em->getRepository(User::class)->findAll();

        return $this->json($users);
    }
}
ログイン後にコピー

运行微服务
最后,启动 PHP 内置服务器来运行微服务:

php -S localhost:8000 public/index.php
ログイン後にコピー

访问 http://localhost:8000/api/usersrrreee

データベース内のユーザー テーブルにマップする src/Entity/User.php エンティティを作成します: 🎜rrreee🎜次のコマンドを実行してデータベース スキーマを作成します: 🎜rrreee🎜🎜Create API コントローラー 🎜🎜ユーザーリクエストを処理する API コントローラーを作成します: 🎜rrreee🎜🎜マイクロサービスを実行します🎜🎜最後に、PHP 組み込みサーバーを起動してマイクロサービスを実行します: 🎜rrreee🎜 http://localhost:8000 にアクセスします/api /users を使用してユーザーリストを取得します。 🎜

以上がPHP マイクロサービス アーキテクチャの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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