tourze/condition-system-bundle
Composer 安装命令:
composer require tourze/condition-system-bundle
包简介
A flexible condition system bundle for Symfony applications that provides condition evaluation, management and trigger mechanisms
README 文档
README
A flexible condition evaluation system for Symfony applications, providing a framework for defining, managing, and evaluating various types of conditions.
Features
- Flexible Condition System: Create and manage various types of conditions with custom handlers
- Evaluation Engine: Evaluate conditions against specific contexts and actors
- Extensible Architecture: Easy to add new condition types by implementing handlers
- Trigger Support: Built-in support for different condition triggers
- Validation: Comprehensive configuration validation for conditions
- Batch Evaluation: Evaluate multiple conditions at once
Installation
You can install this bundle via Composer:
composer require tourze/condition-system-bundle
Requirements
- PHP 8.1 or higher
- Symfony 6.4 or higher
- Doctrine ORM 3.0 or higher
Quick Start
- Register the bundle in your
config/bundles.php:
return [ // ... Tourze\ConditionSystemBundle\ConditionSystemBundle::class => ['all' => true], ];
- Create a custom condition handler:
use Tourze\ConditionSystemBundle\Handler\AbstractConditionHandler; use Tourze\ConditionSystemBundle\Interface\ConditionInterface; use Tourze\ConditionSystemBundle\ValueObject\EvaluationContext; use Tourze\ConditionSystemBundle\ValueObject\EvaluationResult; class MyCustomConditionHandler extends AbstractConditionHandler { public function getType(): string { return 'my_custom_condition'; } public function evaluate(ConditionInterface $condition, EvaluationContext $context): EvaluationResult { // Your evaluation logic here $passed = true; // Determine based on your logic return $passed ? EvaluationResult::pass() : EvaluationResult::fail(['Condition not met']); } }
- Use the condition manager:
use Tourze\ConditionSystemBundle\Service\ConditionManagerService; // Create a condition $condition = $conditionManager->createCondition($subject, 'my_custom_condition', [ 'threshold' => 100, 'operator' => '>=' ]); // Evaluate a condition $context = new EvaluationContext($actor, ['value' => 150]); $result = $conditionManager->evaluateCondition($condition, $context); if ($result->isPassed()) { // Condition passed } else { // Condition failed $errors = $result->getMessages(); }
Configuration
Dependencies
This bundle depends on:
tourze/doctrine-timestamp-bundle: Provides timestamp functionality for entitiestourze/enum-extra: Enhanced enum support
Advanced Usage
Condition Triggers
The bundle supports different condition triggers through the ConditionTrigger enum.
You can filter available condition types by trigger:
$availableTypes = $conditionManager->getAvailableConditionTypes(ConditionTrigger::BEFORE_ACTION);
Batch Evaluation
Evaluate multiple conditions at once:
$results = $conditionManager->evaluateConditions($conditions, $context);
Testing
Run the test suite:
./vendor/bin/phpunit packages/condition-system-bundle/tests
Contributing
Please see CONTRIBUTING.md for details on how to contribute to this project.
License
This bundle is under the MIT license. See the complete license in the bundle: LICENSE
tourze/condition-system-bundle 适用场景与选型建议
tourze/condition-system-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 535 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 05 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tourze/condition-system-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tourze/condition-system-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 535
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 16
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-28