Amalan seni bina perkhidmatan mikro PHP

王林
Lepaskan: 2024-06-05 14:58:09
asal
621 orang telah melayarinya

Amalan seni bina perkhidmatan mikro PHP: Pasang tindanan LEMP: Pasang Linux, Nginx, MySQL dan PHP. Cipta pangkalan data MySQL: Cipta pangkalan data untuk menyimpan data. Pasang Komposer: Gunakan Komposer untuk mengurus kebergantungan PHP. Bina perkhidmatan mikro: Gunakan Symfony untuk mencipta projek Komposer baharu dan konfigurasikan perkhidmatan. Cipta entiti: Tentukan entiti untuk pemetaan ke jadual pangkalan data. Cipta skema pangkalan data: Gunakan Doktrin untuk mencipta skema pangkalan data. Buat pengawal API: Pengawal yang mengendalikan permintaan pengguna. Menjalankan perkhidmatan mikro: Mulakan perkhidmatan mikro menggunakan pelayan terbina dalam PHP.

Amalan seni bina perkhidmatan mikro PHP

Seni Bina Perkhidmatan Mikro PHP dalam Amalan

Pengenalan
Perkhidmatan Mikro ialah gaya seni bina perisian yang memecahkan aplikasi kepada perkhidmatan bebas dan boleh skala. PHP ialah bahasa hujung belakang popular yang bagus untuk membina perkhidmatan mikro. Artikel ini akan membimbing anda melalui kes praktikal untuk menyelesaikan pembinaan seni bina perkhidmatan mikro PHP.

Pasang tindanan LEMP
Mula-mula, anda perlu memasang tindanan 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
Salin selepas log masuk

Buat pangkalan data MySQL
Seterusnya, buat pangkalan data MySQLee untuk

Pasang Komposer
Komposer ialah alat pengurusan pergantungan PHP:

CREATE DATABASE micro_services;
GRANT ALL PRIVILEGES ON micro_services.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Salin selepas log masuk

Membina perkhidmatan mikro
Seterusnya, buat projek Komposer baharu:

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Salin selepas log masuk

Tambah kandungan berikut pada config/codes >.yaml Fail: <code>config/services.yaml 文件:

composer create-project symfony/skeleton micro_services
cd micro_services
Salin selepas log masuk

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

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')]]
Salin selepas log masuk

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

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;

    // ...
}
Salin selepas log masuk

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

composer dump-autoload &&
php bin/console doctrine:database:create
Salin selepas log masuk

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

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);
    }
}
Salin selepas log masuk

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

php -S localhost:8000 public/index.php
Salin selepas log masuk
Buat entiti src/Entity/User.php, yang dipetakan ke jadual pengguna dalam pangkalan data: 🎜rrreee🎜Jalankan arahan berikut untuk mencipta skema pangkalan data: 🎜rrreee🎜🎜Buat Pengawal API 🎜🎜Buat pengawal API untuk mengendalikan permintaan pengguna: 🎜rrreee🎜🎜Jalankan perkhidmatan mikro🎜🎜Akhir sekali, mulakan pelayan terbina dalam PHP untuk menjalankan perkhidmatan mikro: 🎜rrreee🎜Lawati http://localhost:8000 /api /users untuk mendapatkan senarai pengguna. 🎜

Atas ialah kandungan terperinci Amalan seni bina perkhidmatan mikro PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!