PHP 마이크로서비스 아키텍처 실습: LEMP 스택 설치: Linux, Nginx, MySQL 및 PHP를 설치합니다. MySQL 데이터베이스 생성: 데이터를 저장할 데이터베이스를 생성합니다. Composer 설치: Composer를 사용하여 PHP 종속성을 관리합니다. 마이크로서비스 구축: Symfony를 사용하여 새 Composer 프로젝트를 생성하고 서비스를 구성합니다. 엔터티 만들기: 데이터베이스 테이블에 매핑하기 위한 엔터티를 정의합니다. 데이터베이스 스키마 생성: Doctrine을 사용하여 데이터베이스 스키마를 생성합니다. API 컨트롤러 만들기: 사용자 요청을 처리하는 컨트롤러입니다. 마이크로서비스 실행: 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/users
rrreee
src/Entity/User.php
엔터티를 생성합니다. 🎜rrreee🎜다음 명령을 실행하여 데이터베이스 스키마를 생성합니다. 🎜rrreee🎜🎜Create API 컨트롤러 🎜🎜사용자 요청을 처리하기 위한 API 컨트롤러 만들기: 🎜rrreee🎜🎜마이크로 서비스 실행🎜🎜마지막으로 PHP 내장 서버를 시작하여 마이크로 서비스 실행: 🎜rrreee🎜http://localhost:8000 방문 /api /users
사용자 목록을 가져옵니다. 🎜위 내용은 PHP 마이크로서비스 아키텍처 실습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!