https://github.com/krzbes/php-rest-grpc-api
PHP gRPC & REST API showcasing Domain-Driven Design, Buf schema management, RoadRunner, Doctrine ORM, and Symfony Security—built for my Master’s Thesis.
https://github.com/krzbes/php-rest-grpc-api
grpc php8 rest-api
Last synced: 2 months ago
JSON representation
PHP gRPC & REST API showcasing Domain-Driven Design, Buf schema management, RoadRunner, Doctrine ORM, and Symfony Security—built for my Master’s Thesis.
- Host: GitHub
- URL: https://github.com/krzbes/php-rest-grpc-api
- Owner: krzbes
- Created: 2025-06-11T09:49:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-11T10:09:42.000Z (about 1 year ago)
- Last Synced: 2025-10-31T05:18:10.602Z (8 months ago)
- Topics: grpc, php8, rest-api
- Language: PHP
- Homepage:
- Size: 109 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Master’s Thesis: gRPC & REST Testing Project
Welcome to the repository for my **Master’s Thesis Project**, the goal is to compare **gRPC** and **REST** services in **PHP**.
---
## 📖 Overview
This project presents a dual-protocol API, enabling seamless communication via both gRPC and REST. It was developed as part of my graduate research work to explore performance, reliability, and security aspects of modern service architectures.
---
## 🌟 Key Features
- **Dual Protocol Support**: Test suites for both gRPC and REST endpoints
- **Domain-Driven Design (DDD)**: Clear separation of business logic through well-defined bounded contexts
- **Doctrine ORM**: Database interactions managed via Doctrine for flexibility and portability
- **Buf(gRPC Tooling)**: Protobuf schemas in `/schema` and autogenerated PHP code in `/gen/Schema` via Buf for contract compliance
- **RoadRunner**: Configured via `.rr.yaml` for a high-performance PHP application server
- **Symfony Security Core**: Robust authentication & authorization mechanisms for secure API access
- **Containerized Setup**: Docker Compose (`docker-compose.yaml`) orchestrates database services
- **Environment Management**: Configurable via `.env.example` for environment variable setup
---
## ⚙️ Technologies
- PHP 8.x
- Symfony Framework
- Doctrine ORM
- RoadRunner
- Buf (gRPC tooling)
- PHPUnit & Pest for testing
- GitHub Actions for CI/CD
---
## 🚀 Getting Started
1. **Clone the repo**:
```bash
git clone https://github.com/krzbes/php-rest-grpc-api.git
cd php-rest-grpc-api
```
2. **Install dependencies**:
```bash
composer install
```
3. **Configure environment**: Copy `.env.example` to `.env` and adjust database and gRPC endpoint settings
Thank you for checking out my thesis project!