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 文件:

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=两55)
     */
    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 便可猎取用户列表。

以上便是PHP微办事架构真战的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(42) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部