Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shrp777/php-micro-services-poc
PHP Micro Services Architecture with Docker (PoC)
https://github.com/shrp777/php-micro-services-poc
Last synced: 3 days ago
JSON representation
PHP Micro Services Architecture with Docker (PoC)
- Host: GitHub
- URL: https://github.com/shrp777/php-micro-services-poc
- Owner: shrp777
- Created: 2024-11-19T12:24:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-19T15:28:14.000Z (about 2 months ago)
- Last Synced: 2024-11-19T15:36:37.131Z (about 2 months ago)
- Language: PHP
- Size: 69.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Architecture Micro Services modèle - PHP (Laravel) + Docker (PoC)
🚨 Ce projet est une preuve de concept 🚨
- [ ] TODO: implémenter le service auth (actuellement fake)
- [ ] TODO: implémenter le service tasks (actuellement fake)
- [ ] TODO: configurer correctement le middleware validateCsrfTokens dans ./auth/service/bootstrap/app.php
- [ ] TODO: configurer correctement le middleware validateCsrfTokens dans ./gateway/service/bootstrap/app.php
- [ ] TODO: configurer correctement le middleware validateCsrfTokens dans ./tasks/service/bootstrap/app.php
## Installations avant de démarrer les conteneurs Docker
Créer les fichiers .env en se basant sur les fichiers .env.example
- ./db-tasks/.env
- ./db-auth/.env
- ./adminer/.env## Création d'un nouveau service Laravel
Si nécessaire, installer __composer__ en local.
Pour la création d'un nouveau service :
- Créer un dossier portant le nom du service (ex: catalog)
- Se placer dans le dossier du service (ex: catalog)
- Créer un fichier ./nom-du-service/php/local.ini```ini
display_errors=On
error_reporting=E_ALL
memory_limit=512M
upload_max_filesize=100M
post_max_size=100M
```- Créer un fichier ./nom-du-service/nginx/nginx.conf
- Adapter la ligne 12 du fichier ./nom-du-service/nginx/nginx.conf en fonction du nom du service Docker (ex, catalog). Laisser le port 9000.```conf
fastcgi_pass :9000;
```- Depuis le dossier ./nom-du-service créer un projet nouveau projet Laravel nommé "service" avec composer :
```sh
composer create-project --prefer-dist laravel/laravel service
```Cette commande génère un dossier "service" avec toutes les sources de l'application Laravel.
- Adapter le fichier ./nom-du-service/service/.env en fonction de la connexion à la base de données souhaitée.
- Se placer dans le dossier ./nom-du-service/service
- Créer une clé :```sh
php artisan key:generate
```La valeur de la clé sera écrite automatiquement dans le fichier ./nom-du-service/service/.env (ligne 3)
Exemple :
```.env
APP_KEY="base64:tm6gLNls3wJz3QKf1L6L6idTbpZL/NUzzaucHdgQbsM="
```- Installation de l'extension API :
```sh
php artisan install:api
```- Vérification de la connexion à la base de données
Depuis le container Docker du service Laravel :
```sh
php artisan migrate:status
```Chaque service Laravel contient :
- 1 dossier __nginx__ (config nginx)
- 1 dossier __php__ (config php)
- 1 dossier __service__ (application Laravel)Seul le service Gateway est exposé par NGINX.
## Test
- Gateway :
- Tasks :
- Auth :--
!["Logotype Shrp"](https://sherpa.one/images/sherpa-logotype.png)
__Alexandre Leroux__
_Enseignant / Formateur_
_DĂ©veloppeur logiciel web & mobile_Nancy (Grand Est, France)