Rumah >pembangunan bahagian belakang >tutorial php >Amalan seni bina perkhidmatan mikro PHP
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.
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
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';
Membina perkhidmatan mikro
Seterusnya, buat projek Komposer baharu:
sudo curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Tambah kandungan berikut pada config/codes >.yaml Fail: <code>config/services.yaml
文件:
composer create-project symfony/skeleton micro_services cd micro_services
创建 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')]]
运行以下命令来创建数据库模式:
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; // ... }
创建 API 控制器
创建一个 API 控制器来处理用户请求:
composer dump-autoload && php bin/console doctrine:database:create
运行微服务
最后,启动 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); } }
访问 http://localhost:8000/api/users
php -S localhost:8000 public/index.phpBuat 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!