承接 codeheures-fr/scrutineer 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

codeheures-fr/scrutineer

Composer 安装命令:

composer require codeheures-fr/scrutineer

包简介

Scrutineer — in-app manual acceptance testing console. Framework-agnostic, contract-driven (PHP back).

README 文档

README

Scrutineer est une librairie bicéphale (back + front, pilotée par contrat) qui ajoute à votre application une console de recette manuelle : préconditions pré-seedées, scénarios joués depuis vos vrais écrans, résultats horodatés et historisés — sans coupler la lib à votre domaine.

Ce dépôt est le backune implémentation de référence (bundle Symfony, PHP). Le front vit dans un dépôt à part : 👉 scrutineer-front (Web Component, sans build). Les deux se parlent uniquement via le contrat (OpenAPI + JSON Schema), qui vit côté front (scrutineer-front/contract) : le front est le consommateur invariant, ce back n'est qu'un back conforme au contrat (PHP aujourd'hui, un autre langage demain).

Conception & décisions techniques : docs/technical-decisions.md.

Ce que fournit la lib / ce que vous câblez

Fournit (la lib) Vous câblez (l'hôte)
surface HTTP (catalog / availability / reset / events / history / publish) les adaptateurs des ports
store d'historique par défaut (Doctrine, surchargeable) où il vit (.env / config)
console front <scrutineer-console> servie par le back un <script> + 1 appel d'init
orchestration reset + gating mode vos scénarios + vos seeds

La lib ne connaît pas votre domaine. Tout le métier vit derrière les ports.

Installation (back)

1. Installer le package

composer require codeheures-fr/scrutineer

2. Enregistrer et configurer le bundle

// config/bundles.php
return [
    // …
    CODEHeures\Scrutineer\Bridge\Symfony\ScrutineerBundle::class => ['all' => true],
];
# config/packages/scrutineer.yaml
scrutineer:
    enabled: '%env(bool:SCRUTINEER_ENABLED)%'   # la SEULE barrière serveur (403 si false)
    asset_path: '%kernel.project_dir%/vendor/… /scrutineer-console.js'  # ou le front vendoré
    language: fr
    table: scrutineer_test_event                # nom du journal (schéma-qualifiable)
    # connection: shared                        # connexion DBAL du journal (défaut = celle par défaut)

3. Monter les routes sous un préfixe

# config/routes.yaml
scrutineer:
    resource: '@ScrutineerBundle/Resources/config/routes.php'
    prefix: /scrutineer

4. Implémenter les ports

3 requis (ScenarioSeeder, ScrutineerContextProvider, CatalogProvider) + 3 optionnels (ActorResolver, HistoryStore — un défaut Doctrine existe —, TicketPublisher). Chaque port est une interface documentée dans src/Port/ (signatures + docblocks) ; liez chaque interface à votre implémentation avec l'attribut #[AsAlias(<Port>::class)] posé sur la classe (ou, si vous préférez, un alias dans config/services.yaml).

👉 Exemple complet et autonome — un domaine fictif « Acme Books » (en mémoire, données factices), les 6 ports câblés bout à bout + le wiring : example/.

5. Appliquer le schéma du journal

Le seul objet de schéma que la lib ajoute (sans FK, sans PII). Générez la migration dans votre propre pipeline (elle respecte votre config doctrine_migrations) :

php bin/console scrutineer:generate-migration
php bin/console doctrine:migrations:migrate

Le front (dépôt compagnon)

La console est un Web Component servi par ce back (GET <prefix>/console.js). Côté page, chargez le script et posez l'élément — voir scrutineer-front pour les attributs (base, lang, active, auth-token) et les cas même-origine / cross-origine.

Licence

MIT.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固