Praxis der PHP-Microservice-Architektur: LEMP-Stack installieren: Linux, Nginx, MySQL und PHP installieren. Erstellen Sie eine MySQL-Datenbank: Erstellen Sie eine Datenbank zum Speichern von Daten. Composer installieren: Verwenden Sie Composer, um PHP-Abhängigkeiten zu verwalten. Erstellen Sie den Microservice: Erstellen Sie mit Symfony ein neues Composer-Projekt und konfigurieren Sie den Service. Entitäten erstellen: Definieren Sie Entitäten für die Zuordnung zu Datenbanktabellen. Erstellen Sie ein Datenbankschema: Verwenden Sie Doctrine, um ein Datenbankschema zu erstellen. Erstellen Sie einen API-Controller: Einen Controller, der Benutzeranfragen verarbeitet. Ausführen von Microservices: Starten Sie Microservices mithilfe des in PHP integrierten Servers.
PHP-Microservice-Architektur in der Praxis
Einführung
Microservices ist ein Software-Architekturstil, der Anwendungen in unabhängige und skalierbare Dienste aufteilt. PHP ist eine beliebte Backend-Sprache, die sich hervorragend zum Erstellen von Microservices eignet. Dieser Artikel führt Sie durch einen praktischen Fall, um den Aufbau der PHP-Microservice-Architektur abzuschließen.
Installieren Sie den LEMP-Stack.
Zuerst müssen Sie den LEMP-Stack (Linux, Nginx, MySQL, PHP) installieren:
# 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
Composer installieren
Composer ist ein PHP-Abhängigkeitsmanagement-Tool:
CREATE DATABASE micro_services; GRANT ALL PRIVILEGES ON micro_services.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Microservices erstellen
Als nächstes erstellen Sie ein neues Composer-Projekt:
sudo curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Fügen Sie den folgenden Inhalt zu config/services.yaml</code > hinzu Datei: <strong><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:bash;toolbar:false;'>composer create-project symfony/skeleton micro_services
cd micro_services</pre><div class="contentsignin">Nach dem Login kopieren</div></div></strong>Erstellen Sie die Entität <code>src/Entity/User.php
, die der Benutzertabelle in der Datenbank zugeordnet ist:
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; // ... }
config/services.yaml
文件:composer dump-autoload && php bin/console doctrine:database:create
创建 src/Entity/User.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); } }
运行以下命令来创建数据库模式:
php -S localhost:8000 public/index.php
创建 API 控制器
创建一个 API 控制器来处理用户请求:
运行微服务
最后,启动 PHP 内置服务器来运行微服务:
访问 http://localhost:8000/api/users
http://localhost:8000 /api /users
, um die Benutzerliste abzurufen. 🎜Das obige ist der detaillierte Inhalt vonPraxis der PHP-Microservice-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!