shyguy81 / food-choice-core
Core domain library for the FoodChoice app
Installs: 25
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/shyguy81/food-choice-core
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2026-01-09 14:29:54 UTC
README
Librairie core contenant la logique métier (domain entities, ports, services) pour l'application FoodChoice.
But: extraire la logique réutilisable (suggestion, planification, règles) et la publier via Composer.
Installation (dev local):
- Depuis la racine du projet, installez les dépendances du package:
cd packages/food-choice-core
composer install
- Utilisation minimale:
use Shyguy\FoodChoiceCore\Service\SuggestionEngine; use Shyguy\FoodChoiceCore\Port\RepositoryInterface; // Injecter un adapter implémentant RepositoryInterface $repo = ...; $engine = new SuggestionEngine($repo); $suggestion = $engine->suggestOne();
Exemples d'utilisation des nouveaux services:
use Shyguy\FoodChoiceCore\Service\WeeklyMenuService; use Shyguy\FoodChoiceCore\Service\FoodSearchService; $repo = /* implémentation de RepositoryInterface */; $weekly = new WeeklyMenuService($repo); $menu = $weekly->generateWeeklyMenu(14); foreach ($menu as $day => $food) { echo $day . ': ' . ($food?->name ?? 'Pas de suggestion') . "\n"; } $search = new FoodSearchService($repo); foreach ($search->searchByName('pizza', 5) as $f) { echo $f->name . " ({$f->category})\n"; }
Contrib: suivez les conventions PSR-12 et écrivez des tests unitaires.