BideoGemu · Studio de développement web FR EN
BIDEOGEMUビデオゲーム Décrire mon projet

Planche 05 — socle technique

05

Socle technique

Ce qu'il y a sous le capot

Rien d'exotique : des briques maintenues, documentées, et que quelqu'un d'autre saura reprendre après moi. C'est une garantie, pas un détail.

Applications
  • Symfony 8.0
  • PHP 8.4
  • Bolt CMS
  • Doctrine ORM
E-commerce
  • PrestaShop 1.7 → 9
  • Sylius sur Symfony
  • Modules sur mesure
  • Thèmes sur mesure
Données
  • MariaDB 11.4
  • MySQL PrestaShop
  • Sauvegardes quotidiennes
  • Migrations versionnées
Exploitation
  • Docker tous env.
  • FrankenPHP serveur
  • Recette environnement dédié
  • Supervision alertes
bideogemu / src / Studio.php
<?php declare(strict_types=1); namespace BideoGemu; /** * Studio de développement web, une seule personne. * * Sites, boutiques et applications métier sur mesure. * Le même interlocuteur du cadrage à l'astreinte. * * @author  BideoGemu <contact@bideogemu.fr> * @since   2006 * @link    https://bideogemu.fr */final class Studio implements Interlocuteur{    public const SOCLE = ['Symfony', 'PrestaShop', 'Sylius', 'Bolt'];     public function cadrer(Projet $projet): Plan    {        // Rien n'est développé avant que le plan soit validé.        return $this->dessiner($projet)->chiffrer()->dater();    }     public function livrer(Plan $plan): Site    {        return $this->construire($plan)            ->avecGarantie(mois: 12)            ->avecLeCode(proprietaire: $plan->client());    }     public function repondreSous24h(): bool    {        return true; // oui, vraiment    }}
{    "name": "bideogemu/socle",    "description": "Le socle commun de tous les projets",    "type": "project",    "license": "proprietary",    "require": {        "php": ">=8.4",        "symfony/framework-bundle": "8.0.*",        "symfony/twig-bundle": "^8.0",        "symfony/security-bundle": "^8.0",        "symfony/mercure-bundle": "^0.4",        "doctrine/orm": "^3.6",        "doctrine/doctrine-migrations-bundle": "^4.0",        "easycorp/easyadmin-bundle": "^5.2",        "bideogemu/mpdf-bundle": "^1.0"    },    // Aucune dépendance front : le CSS est écrit à la main,    // il n'y a pas de node_modules à reconstruire dans cinq ans.    "scripts": {        "deploy": ["@migrate", "@cache", "@smoke"]    }}
services:  php:    image: bideogemu-apko:php84   # image minimale, sans distro complète    restart: unless-stopped    healthcheck:      test: ["CMD", "php", "bin/console", "app:health"]      interval: 30s    labels:      - "traefik.enable=true"      - "traefik.http.routers.app.tls=true"   worker:    image: bideogemu-apko:php84    command: bin/console messenger:consume async   db:    image: mariadb:11.4    volumes: ["./data:/var/lib/mysql"]   ofelia:                          # les tâches planifiées    image: mcuadros/ofelia:latest # Recette et production tournent sur le même fichier.# Ce qui est testé est ce qui est déployé.
PHP 8.4UTF-8LF ✓ 0 erreur main ↑ à jour

Un projet en tête ? Dites-moi ce que vous voulez construire, même en trois lignes.

Décrire mon projet