>  기사  >  백엔드 개발  >  PHP 마이크로서비스 아키텍처 실습

PHP 마이크로서비스 아키텍처 실습

王林
王林원래의
2024-06-05 14:58:09622검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.