alphonse243/biocycle-predictor

Moteur de calcul adaptatif pour le cycle menstruel avec projections intelligentes

Maintainers

Package info

github.com/Alphonse243/Mentruel-sycle-php

Homepage

pkg:composer/alphonse243/biocycle-predictor

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-02-08 11:39 UTC

This package is auto-updated.

Last update: 2026-04-08 18:51:04 UTC


README

License: MIT PHP Version Composer

Un package PHP 8 intelligent et adaptatif pour la prédiction du cycle menstruel avec détection d'anomalies.

Caractéristiques

  • Calcul adaptatif : Moyenne mobile sur les 6 derniers cycles
  • Détection d'anomalies : Alerte si écart > 7 jours
  • Ovulation intelligente : Forçage manuel possible
  • Gestion robuste : Passages d'années, fuseaux horaires
  • Formatage multilingue : Français, anglais, etc.
  • Tests unitaires : 100% de couverture

Installation

composer require alphonse243/biocycle-predictor

Utilisation rapide

<?php
require_once 'vendor/autoload.php';

use Alphonse243\BioCycle\Calculator\CycleCalculator;
use Alphonse243\BioCycle\Collection\CycleHistory;
use Alphonse243\BioCycle\Entity\CycleEntity;
use Carbon\Carbon;

// Créer un historique
$history = new CycleHistory();

$history->addCycle(new CycleEntity(
    Carbon::createFromFormat('Y-m-d', '2024-10-01'),
    Carbon::createFromFormat('Y-m-d', '2024-10-29')
));

$history->addCycle(new CycleEntity(
    Carbon::createFromFormat('Y-m-d', '2024-10-29'),
    Carbon::createFromFormat('Y-m-d', '2024-11-26')
));

// Créer le calculateur
$calculator = new CycleCalculator(
    $history,
    Carbon::createFromFormat('Y-m-d', '2024-11-26')
);

// Obtenir les prédictions
$formatted = $calculator->getFormattedPrediction('fr');

echo "Prochaines règles : " . $formatted['prochaines_règles'];
echo "Fenêtre de fertilité : " . $formatted['fenetre_fertilité'];

Documentation complète

Architecture

Le package est organisé en trois entités principales :

CycleEntity

Objet simple représentant un cycle passé.

$cycle = new CycleEntity(
    Carbon::createFromFormat('Y-m-d', '2024-10-01'),
    Carbon::createFromFormat('Y-m-d', '2024-10-29')
);

echo $cycle->getDureeRecue(); // 28 jours

CycleHistory

Collection d'objets CycleEntity avec analyse statistique.

$history = new CycleHistory();
$history->addCycle($cycle1);
$history->addCycle($cycle2);

$moyenne = $history->getAverageDuration(); // float
echo $history->count(); // int

CycleCalculator

Cœur du système : calculs de prédiction avec logique adaptative.

$calculator = new CycleCalculator($history, $lastPeriodDate);

// Prédictions brutes
$prediction = $calculator->predictNextCycle();

// Prédictions formatées
$formatted = $calculator->getFormattedPrediction('fr');

Méthodes principales

forceOvulationDate()

Permet de forcer une date d'ovulation si détection physique.

$forcedDate = Carbon::now()->addDays(5);
$calculator->forceOvulationDate($forcedDate);
$prediction = $calculator->predictNextCycle();

Gestion des exceptions

use Alphonse243\BioCycle\Exception\CycleIrregulierException;

try {
    $prediction = $calculator->predictNextCycle();
} catch (CycleIrregulierException $e) {
    echo "⚠️ Cycle irrégulier détecté : " . $e->getMessage();
}

Tests

composer test
composer test-coverage

📄 License

MIT License - Voir LICENSE pour plus de détails.

Auteur

Katumba Tchibambe Alphonse